Function at 0x1800563c0
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 - 0x350]
sub rsp, 0x450
mov rbx, rcx
xor r14d, r14d
mov dword [rbp + 0x3a0], r14d
mov qword [rsp + 0x50], r14
mov esi, reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x68], rsi
mov byte [rsp + 0x50], r14b
mov qword [rsp + 0x60], 5
xor eax, eax
mov dword [rsp + 0x50], eax
mov word [rsp + 0x54], ax
lea rdx, [rsp + 0x50]
mov byte [rbp + 0x398], 0x3f
movzx eax, byte [rbp + 0x398]
lea rdi, [0x1800fc9c0]
movzx eax, byte [rax + rdi]
mov byte [rdx + 4], al
mov byte [rbp + 0x398], 0xa
movzx eax, byte [rbp + 0x398]
movzx eax, byte [rax + rdi]
mov byte [rdx + 3], al
mov byte [rbp + 0x398], 0x3f
movzx eax, byte [rbp + 0x398]
movzx eax, byte [rax + rdi]
mov byte [rdx + 2], al
mov byte [rbp + 0x398], 0x53
movzx eax, byte [rbp + 0x398]
movzx eax, byte [rax + rdi]
mov byte [rdx + 1], al
mov byte [rbp + 0x398], 0xa
movzx eax, byte [rbp + 0x398]
movzx eax, byte [rax + rdi]
mov byte [rdx], al
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0x90]
call fcn.18002bb40
nop
mov rdx, rbx
lea rcx, [rbp + 0x70]
call fcn.18002b530
nop
lea rdx, [rbp + 0x90]
lea rcx, [rbp + 0x70]
call fcn.180028370
mov rdx, rax
lea rcx, [rbp + 0xd0]
call fcn.18002b530
mov dword [rbp + 0x3a0], 1
mov rdx, qword [rbp + 0x88]
cmp rdx, 8
jb 0x180056513
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18005650e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180056d23
call fcn.18008a564
movdqa xmm0, xmmword [0x180102450]
movdqu xmmword [rbp + 0x80], xmm0
mov word [rbp + 0x70], r14w
mov rdx, qword [rbp + 0xa8]
cmp rdx, 8
jb 0x18005656e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x90]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180056569
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180056d29
call fcn.18008a564
movdqa xmm0, xmmword [0x180102450]
movdqu xmmword [rbp + 0xa0], xmm0
mov word [rbp + 0x90], r14w
mov rdx, qword [rsp + 0x68]
cmp rdx, 0x10
jb 0x1800565c3
inc rdx
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800565be
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180056d2f
call fcn.18008a564
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x68], rsi
mov byte [rsp + 0x50], 0
lea rcx, [rbp + 0xd0]
call fcn.18002eec0
test al, al
jne 0x1800565e9
xor bl, bl
jmp 0x180056cbd
mov dword [rbp - 0x50], 0x8fa21665
mov dword [rbp - 0x4c], 0xb707e5fd
mov dword [rbp - 0x48], 0xfb1ee6ca
mov dword [rbp - 0x44], 0xb2a9cbf
mov dword [rbp - 0x40], 0x537d0cda
mov dword [rbp - 0x3c], 0xf525ddf3
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x48], r14
mov edx, 1
lea rcx, [rsp + 0x30]
call fcn.18002c0c0
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x30]
mov byte [rax + rcx], 4
inc rcx
mov qword [rsp + 0x48], rcx
mov qword [rbp - 0x38], r14
mov qword [rbp - 0x20], rsi
mov byte [rbp - 0x38], 0
mov qword [rbp - 0x28], 5
xor eax, eax
mov dword [rbp - 0x38], eax
mov word [rbp - 0x34], ax
lea rdx, [rbp - 0x38]
mov byte [rbp + 0x398], 0x3f
movzx eax, byte [rbp + 0x398]
movzx eax, byte [rax + rdi]
mov byte [rdx + 4], al
mov byte [rbp + 0x398], 0xa
movzx eax, byte [rbp + 0x398]
movzx eax, byte [rax + rdi]
mov byte [rdx + 3], al
mov byte [rbp + 0x398], 0x3f
movzx eax, byte [rbp + 0x398]
movzx eax, byte [rax + rdi]
mov byte [rdx + 2], al
mov byte [rbp + 0x398], 0x53
movzx eax, byte [rbp + 0x398]
movzx eax, byte [rax + rdi]
mov byte [rdx + 1], al
mov byte [rbp + 0x398], 0xa
movzx eax, byte [rbp + 0x398]
movzx eax, byte [rax + rdi]
mov byte [rdx], al
lea rdx, [rbp - 0x38]
lea rcx, [rbp + 0xb0]
call fcn.18002bb40
nop
lea rdx, [rbp + 8]
lea rcx, [rbp + 0xb0]
call fcn.1800285b0
nop
movzx ebx, word [rbp + 0x18]
mov rcx, qword [rsp + 0x38]
mov rax, rcx
mov rdx, qword [rsp + 0x30]
sub rax, rdx
lea r8, [rax + 2]
cmp r8, rax
jae 0x18005671a
lea rcx, [r8 + rdx]
jmp 0x18005674b
jbe 0x180056750
mov rax, qword [rsp + 0x40]
sub rax, rdx
cmp r8, rax
jbe 0x180056742
mov rdx, r8
lea rcx, [rsp + 0x30]
call fcn.18002c0c0
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
jmp 0x180056750
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 + 0x18]
add rdx, rcx
lea rcx, [rsp + 0x30]
call fcn.18002b230
lea rdx, [rbp + 8]
cmp qword [rbp + 0x20], 0x10
cmovae rdx, qword [rbp + 8]
mov rbx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x30]
add rcx, rbx
mov r8, qword [rbp + 0x18]
call fcn.18008c6d0
add rbx, qword [rbp + 0x18]
mov qword [rsp + 0x48], rbx
mov rdx, qword [rbp + 0x20]
cmp rdx, 0x10
jb 0x1800567df
inc rdx
mov rcx, qword [rbp + 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800567d9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180056d35
call fcn.18008a564
nop
mov rdx, qword [rbp + 0xc8]
cmp rdx, 8
jb 0x180056825
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0xb0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180056820
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180056d3b
call fcn.18008a564
movdqa xmm0, xmmword [0x180102450]
movdqu xmmword [rbp + 0xc0], xmm0
mov word [rbp + 0xb0], r14w
mov rdx, qword [rbp - 0x20]
cmp rdx, 0x10
jb 0x180056878
inc rdx
mov rcx, qword [rbp - 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180056873
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180056d41
call fcn.18008a564
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x70], xmm0
xor r8d, r8d
lea rdx, [rbp + 0xd0]
lea rcx, [rbp - 0x70]
call fcn.18002b9c0
test eax, eax
jne 0x180056d47
mov rdi, qword [rbp - 0x68]
mov qword [rbp + 0x398], rdi
test rdi, rdi
je 0x1800568ba
lock inc dword [rdi + 8]
mov rdi, qword [rbp - 0x68]
mov qword [rbp + 0x398], rdi
movdqa xmm0, xmmword [rbp - 0x70]
movdqa xmmword [rbp - 0x60], xmm0
test rdi, rdi
je 0x1800568dd
lock inc dword [rdi + 8]
mov rdi, qword [rbp - 0x68]
mov qword [rbp + 0x398], rdi
movdqa xmm0, xmmword [rbp - 0x70]
movdqa xmmword [rbp + 0x50], xmm0
lea rdx, [rbp + 0x50]
lea rcx, [rbp + 0x60]
call fcn.1800291b0
nop
mov rsi, qword [rbp - 0x60]
mov r13d, dword [rbp + 0x3a0]
mov rbx, qword [rbp - 0x58]
nop
cmp rsi, qword [rbp + 0x60]
je 0x180056c3c
mov rax, qword [rsi + 0x30]
lea rcx, [rsi + 0x20]
cmp qword [rsi + 0x38], 8
jb 0x18005691d
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 - 0x18], r14
mov qword [rbp - 8], r14
mov qword [rbp], 7
mov word [rbp - 0x18], r14w
mov r8, r11
mov rdx, rax
lea rcx, [rbp - 0x18]
call fcn.18002b6f0
or r13d, 0xe
lea r15, [rbp - 0x18]
cmp qword [rbp], 8
cmovae r15, qword [rbp - 0x18]
mov r14, qword [rbp - 8]
call fcn.180088ad4
mov r12d, eax
xor eax, eax
mov qword [rsp + 0x70], rax
mov edx, eax
mov qword [rbp - 0x80], rax
mov r10d, reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x78], r10
mov byte [rsp + 0x70], al
bts r13d, 7
mov dword [rbp + 0x3a0], r13d
test r14, r14
je 0x180056a26
cmp r14, 0x7fffffff
ja 0x180056d75
mov dword [rsp + 0x20], eax
xor r9d, r9d
mov r8d, r14d
mov rdx, r15
mov ecx, r12d
call fcn.180088b44
mov rbx, rax
mov qword [rbp + 0x3a8], rax
shr rax, 0x20
test eax, eax
jne 0x180056d69
movsxd rdx, ebx
xor r8d, r8d
lea rcx, [rsp + 0x70]
call fcn.180021950
lea r9, [rsp + 0x70]
cmp qword [rbp - 0x78], 0x10
cmovae r9, qword [rsp + 0x70]
mov dword [rsp + 0x20], ebx
mov r8d, r14d
mov rdx, r15
mov ecx, r12d
call fcn.180088b44
mov qword [rbp + 0x3a8], rax
shr rax, 0x20
test eax, eax
jne 0x180056d5d
mov r10, qword [rbp - 0x78]
mov rdx, qword [rbp - 0x80]
btr r13d, 7
or r13d, 0x70
lea r8, [rsp + 0x70]
cmp r10, 0x10
setae r11b
mov r9, qword [rsp + 0x70]
cmovae r8, r9
mov ebx, 0x7c3f72fb
xor r14d, r14d
mov ecx, r14d
test rdx, rdx
je 0x180056a75
nop word [rax + rax]
movzx eax, byte [rcx + r8]
xor eax, ebx
imul ebx, eax, 0x1000193
inc rcx
cmp rcx, rdx
jb 0x180056a60
test r11b, r11b
je 0x180056aab
lea rdx, [r10 + 1]
mov rax, r9
cmp rdx, 0x1000
jb 0x180056aa3
add rdx, 0x27
mov r9, qword [r9 - 8]
sub rax, r9
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180056d7b
mov rcx, r9
call fcn.18008a564
mov qword [rbp - 0x80], r14
mov qword [rbp - 0x78], reloc.WS2_32.dll_ntohs
mov byte [rsp + 0x70], r14b
mov rdx, qword [rbp]
cmp rdx, 8
jb 0x180056afc
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180056af7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180056d81
call fcn.18008a564
lea rax, [rbp - 0x50]
lea rcx, [rbp - 0x38]
cmp dword [rax], ebx
je 0x180056b13
add rax, 4
cmp rax, rcx
jne 0x180056b00
jmp 0x180056b1c
cmp rax, rcx
jne 0x180056bc0
lea rdx, [rsi + 0x20]
lea rcx, [rbp + 0x28]
call fcn.18005b270
nop
cmp byte [rbp + 0x40], 0
jne 0x180056b35
jmp 0x180056bc0
lea rdx, [rsi + 0x20]
lea rcx, [rsp + 0x30]
call fcn.180029420
mov rdi, qword [rbp + 0x30]
sub rdi, qword [rbp + 0x28]
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 rbx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x30]
add rcx, rbx
mov r8, rdi
mov rdx, qword [rbp + 0x28]
call fcn.18008c6d0
add rbx, rdi
mov qword [rsp + 0x48], rbx
cmp byte [rbp + 0x40], 0
je 0x180056bc0
lea rcx, [rbp + 0x28]
call fcn.18002c060
nop
lea rdx, [rbp + 0x100]
mov rcx, qword [rsi + 0x40]
call fcn.180088f54
cmp eax, 0x12
je 0x180056c17
test eax, eax
jne 0x180056d87
cmp word [rbp + 0x12c], 0x2e
jne 0x180056c03
movzx eax, word [rbp + 0x12e]
test ax, ax
je 0x180056bc0
cmp ax, 0x2e
jne 0x180056c03
cmp word [rbp + 0x130], 0
je 0x180056bc0
lea rdx, [rbp + 0x100]
mov rcx, rsi
call fcn.180028dd0
jmp 0x1800568fb
mov rsi, r14
mov qword [rbp - 0x60], r14
mov rcx, qword [rbp - 0x58]
mov rbx, r14
mov qword [rbp - 0x58], rbx
test rcx, rcx
je 0x180056900
call fcn.1800280b0
jmp 0x180056900
lea rcx, [rbp + 0x60]
call fcn.180029160
nop
test rbx, rbx
je 0x180056c54
mov rcx, rbx
call fcn.1800280b0
nop
mov rdi, qword [rbp + 0x398]
test rdi, rdi
je 0x180056c68
mov rcx, rdi
call fcn.1800280b0
xor r9d, r9d
lea r8, [rsp + 0x30]
mov dl, inet_ntoa
lea rcx, [0x180118fd0]
call fcn.180059d90
mov bl, 1
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x180056cbd
mov rdx, qword [rsp + 0x40]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180056cb7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180056d96
call fcn.18008a564
nop
mov rdx, qword [rbp + 0xe8]
cmp rdx, 8
jb 0x180056cff
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0xd0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180056cfa
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180056d1d
call fcn.18008a564
movzx eax, bl
mov rbx, qword [rsp + 0x490]
add rsp, 0x450
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
lea r8, [rbp + 0xd0]
mov edx, eax
lea rcx, str.directory_iterator::directory_iterator
call fcn.18002e8c0
nop
mov ecx, dword [rbp + 0x3ac]
call fcn.180028190
int3
mov ecx, dword [rbp + 0x3ac]
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