Function at 0x180052c00
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 - 0x2c0]
sub rsp, 0x3c0
mov rbx, rcx
xor r14d, r14d
mov dword [rbp + 0x308], r14d
mov qword [rbp - 0x70], r14
mov edi, reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x58], rdi
mov byte [rbp - 0x70], r14b
mov qword [rbp - 0x60], 3
xor eax, eax
mov dword [rbp - 0x70], eax
lea rdx, [rbp - 0x70]
mov byte [rbp + 0x308], 1
movzx eax, byte [rbp + 0x308]
lea r8, [0x1800f08c0]
movzx eax, byte [rax + r8]
mov byte [rdx + 2], al
mov byte [rbp + 0x308], 0x53
movzx eax, byte [rbp + 0x308]
movzx eax, byte [rax + r8]
mov byte [rdx + 1], al
mov byte [rbp + 0x308], 0x50
movzx eax, byte [rbp + 0x308]
movzx eax, byte [rax + r8]
mov byte [rdx], al
lea rdx, [rbp - 0x70]
lea rcx, [rbp - 0x28]
call fcn.18002bb40
nop
mov rdx, rbx
lea rcx, [rbp + 0x28]
call fcn.18002b530
nop
lea rdx, [rbp - 0x28]
lea rcx, [rbp + 0x28]
call fcn.180028370
mov rdx, rax
lea rcx, [rbp - 8]
call fcn.18002b530
mov esi, 1
mov dword [rbp + 0x308], esi
mov rdx, qword [rbp + 0x40]
cmp rdx, 8
jb 0x180052d16
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180052d10
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800532ff
call fcn.18008a564
nop
mov rdx, qword [rbp - 0x10]
cmp rdx, 8
jb 0x180052d56
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180052d51
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180053305
call fcn.18008a564
movdqa xmm0, xmmword [0x180102450]
movdqu xmmword [rbp - 0x18], xmm0
mov word [rbp - 0x28], r14w
mov rdx, qword [rbp - 0x58]
cmp rdx, 0x10
jb 0x180052da3
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180052d9e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18005330b
call fcn.18008a564
mov qword [rbp - 0x60], r14
mov qword [rbp - 0x58], rdi
mov byte [rbp - 0x70], 0
lea rcx, [rbp - 8]
call fcn.18002eec0
test al, al
jne 0x180052dc3
xor bl, bl
jmp 0x18005329f
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x50], xmm0
xor r8d, r8d
lea rdx, [rbp - 8]
lea rcx, [rsp + 0x50]
call fcn.18002b9c0
test eax, eax
jne 0x180053311
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x180052dfe
lock inc dword [rcx + 8]
mov rcx, qword [rsp + 0x58]
mov esi, dword [rbp + 0x308]
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rbp - 0x80], xmm0
test rcx, rcx
je 0x180052e1c
lock inc dword [rcx + 8]
mov rcx, qword [rsp + 0x58]
mov esi, dword [rbp + 0x308]
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x18], xmm1
test rcx, rcx
je 0x180052e65
mov eax, 0xffffffff
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x180052e5f
mov rbx, qword [rsp + 0x58]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x180052e5f
mov rcx, qword [rsp + 0x58]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov esi, dword [rbp + 0x308]
movzx edi, byte [rbp + 0x308]
mov r13, qword [rbp - 0x80]
test r13, r13
je 0x18005327f
mov r15, qword [r13 + 0x30]
lea r12, [r13 + 0x20]
cmp qword [r13 + 0x38], 8
jb 0x180052e8c
mov r12, qword [r13 + 0x20]
call fcn.180088ad4
mov dword [rbp + 0x318], eax
mov qword [rsp + 0x30], r14
mov rbx, r14
mov qword [rsp + 0x40], rbx
mov r14d, reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x48], r14
mov byte [rsp + 0x30], 0
or esi, 0x10
mov dword [rbp + 0x310], esi
mov dword [rbp + 0x308], esi
test r15, r15
je 0x180052fd0
cmp r15, 0x7fffffff
ja 0x180053339
mov dword [rsp + 0x20], 0
xor r9d, r9d
mov r8d, r15d
mov rdx, r12
mov ecx, eax
call fcn.180088b44
mov rbx, rax
mov qword [rbp - 0x50], rax
shr rax, 0x20
test eax, eax
jne 0x180053330
movsxd rcx, ebx
mov rdx, qword [rsp + 0x40]
cmp rcx, rdx
ja 0x180052f2d
lea rax, [rsp + 0x30]
cmp qword [rsp + 0x48], 0x10
cmovae rax, qword [rsp + 0x30]
mov qword [rsp + 0x40], rcx
mov byte [rax + rcx], 0
jmp 0x180052f8d
mov r14, rcx
sub r14, rdx
mov r8, qword [rsp + 0x48]
mov rax, r8
sub rax, rdx
cmp r14, rax
ja 0x180052f74
mov qword [rsp + 0x40], rcx
lea rsi, [rsp + 0x30]
cmp r8, 0x10
cmovae rsi, qword [rsp + 0x30]
add rsi, rdx
mov r8, r14
xor edx, edx
mov rcx, rsi
call fcn.18008cd80
mov byte [r14 + rsi], 0
mov esi, dword [rbp + 0x310]
jmp 0x180052f8d
mov byte [rsp + 0x20], 0
mov r9, r14
movzx r8d, dil
mov rdx, r14
lea rcx, [rsp + 0x30]
call fcn.180021dc0
lea r9, [rsp + 0x30]
cmp qword [rsp + 0x48], 0x10
cmovae r9, qword [rsp + 0x30]
mov dword [rsp + 0x20], ebx
mov r8d, r15d
mov rdx, r12
mov ecx, dword [rbp + 0x318]
call fcn.180088b44
mov qword [rbp + 0x310], rax
shr rax, 0x20
test eax, eax
jne 0x180053324
mov r14, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x40]
and esi, 0xffffffef
or esi, 0xe
mov dword [rbp + 0x310], esi
mov dword [rbp + 0x308], esi
lea r11, [rsp + 0x30]
cmp r14, 0x10
setae r15b
mov rsi, qword [rsp + 0x30]
cmovae r11, rsi
mov r9, rbx
test rbx, rbx
je 0x180053041
mov r8d, 0x7c3f72fb
mov r10, rbx
sub r10, r9
mov eax, 0
je 0x180053037
lea rcx, [rax + r9]
movzx edx, byte [rcx + r11]
xor edx, r8d
imul r8d, edx, 0x1000193
inc rax
cmp rax, r10
jb 0x180053013
cmp r8d, 0x20ff1cdb
je 0x18005303d
sub r9, 1
jmp 0x180052ffe
xor bl, bl
jmp 0x180053043
mov bl, 1
test r15b, r15b
je 0x180053079
lea rdx, [r14 + 1]
mov rax, rsi
cmp rdx, 0x1000
jb 0x180053071
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18005333f
mov rcx, rsi
call fcn.18008a564
test bl, bl
jne 0x180053090
lea rdx, [r13 + 0x20]
lea rcx, [rbp - 0x48]
call fcn.18005b270
nop
cmp byte [rbp - 0x30], bl
jne 0x1800530ee
xor r14d, r14d
lea rdx, [rbp + 0x70]
mov rcx, qword [r13 + 0x40]
call fcn.180088f54
cmp eax, 0x12
je 0x180053217
test eax, eax
jne 0x180053351
cmp word [rbp + 0x9c], 0x2e
jne 0x1800530d7
movzx eax, word [rbp + 0x9e]
test ax, ax
je 0x180053093
cmp ax, 0x2e
jne 0x1800530d7
cmp word [rbp + 0xa0], 0
je 0x180053093
lea rdx, [rbp + 0x70]
mov rcx, r13
call fcn.180028dd0
mov esi, dword [rbp + 0x310]
jmp 0x180052e70
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x60], xmm0
xor r14d, r14d
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x78], r14
lea edx, [r14 + 1]
lea rcx, [rsp + 0x60]
call fcn.18002c0c0
mov rcx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x60]
mov byte [rax + rcx], 1
inc rcx
mov qword [rsp + 0x78], rcx
lea rdx, [r13 + 0x20]
lea rcx, [rsp + 0x60]
call fcn.180029420
mov rsi, qword [rbp - 0x40]
sub rsi, qword [rbp - 0x48]
mov rdx, qword [rsp + 0x68]
sub rdx, qword [rsp + 0x60]
add rdx, rsi
lea rcx, [rsp + 0x60]
call fcn.18002b230
mov rbx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x60]
add rcx, rbx
mov r8, rsi
mov rdx, qword [rbp - 0x48]
call fcn.18008c6d0
add rbx, rsi
mov qword [rsp + 0x78], rbx
xor r9d, r9d
lea r8, [rsp + 0x60]
mov dl, inet_ntoa
lea rcx, [0x180118fd0]
call fcn.180059d90
nop
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x1800531ca
mov rdx, qword [rsp + 0x70]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800531c4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180053345
call fcn.18008a564
nop
cmp byte [rbp - 0x30], 0
je 0x180053093
mov rcx, qword [rbp - 0x48]
test rcx, rcx
je 0x180053093
mov rdx, qword [rbp - 0x38]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18005320d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18005334b
call fcn.18008a564
jmp 0x180053093
mov r13, r14
mov qword [rbp - 0x80], r14
mov rbx, qword [rbp - 0x78]
mov qword [rbp - 0x78], r14
test rbx, rbx
mov esi, dword [rbp + 0x310]
je 0x180052e70
mov eax, 0xffffffff
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x180053260
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
je 0x18005326b
nop dword [rax + rax]
mov esi, dword [rbp + 0x308]
jmp 0x180052e6c
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov esi, dword [rbp + 0x308]
jmp 0x180052e6c
mov rcx, qword [rbp - 0x78]
test rcx, rcx
je 0x18005328e
call fcn.1800280b0
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x18005329d
call fcn.1800280b0
mov bl, 1
mov rdx, qword [rbp + 0x10]
cmp rdx, 8
jb 0x1800532db
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800532d6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800532f9
call fcn.18008a564
movzx eax, bl
mov rbx, qword [rsp + 0x400]
add rsp, 0x3c0
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
lea r8, [rbp - 8]
mov edx, eax
lea rcx, str.directory_iterator::directory_iterator
call fcn.18002e8c0
nop
mov ecx, dword [rbp + 0x314]
call fcn.180028190
int3
mov ecx, dword [rbp - 0x4c]
call fcn.180028190
int3
call fcn.180027ee0
nop
call fcn.180090f98
nop
call fcn.180090f98
nop
call fcn.180090f98
int3
mov edx, eax
lea rcx, str.directory_iterator::operator
call fcn.180028b60
int3