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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xc0
mov r14, rcx
cmp qword [rcx + 0x18], 8
jb 0x1800558bb
mov rcx, qword [rcx]
mov r9d, 0xffffffff
mov r8d, 3
lea rdx, [rbp - 9]
call fcn.18008903c
test eax, eax
jne 0x18005590a
mov ecx, dword [rbp + 7]
bt ecx, 0xa
jae 0x1800558fc
mov eax, dword [rbp + 0xb]
cmp eax, 0xa000000c
jne 0x1800558ee
mov eax, 4
jmp 0x180055927
cmp eax, 0xa0000003
jne 0x1800558fc
mov eax, 0xa
jmp 0x180055927
movzx eax, cl
and eax, 0x10
or eax, 0x20
shr eax, 4
jmp 0x180055927
sub eax, 2
je 0x180055922
sub eax, 1
je 0x180055922
sub eax, 0x32
je 0x180055922
cmp eax, 0x46
jne 0x180055e1a
mov eax, 1
cmp eax, 1
je 0x180055e1a
mov dword [rbp + 0x67], 0x9f12c05b
mov dword [rbp + 0x6b], 0x8d847719
mov rcx, r14
cmp qword [r14 + 0x18], 8
jb 0x18005594b
mov rcx, qword [r14]
mov r9d, 0xffffffff
mov r8d, 9
lea rdx, [rbp - 0x29]
call fcn.18008903c
test eax, eax
jne 0x180055e1a
cmp qword [rbp - 0x21], 0x100000
ja 0x180055e1a
lea rdx, [rbp + 0x17]
mov rcx, r14
call fcn.180028710
nop
lea rdx, [rbp - 0x49]
lea rcx, [rbp + 0x17]
call fcn.18002e2f0
nop
lea rbx, [rbp + 0x67]
mov r13, qword [rbp - 0x31]
mov rdi, qword [rbp - 0x39]
mov rsi, qword [rbp - 0x49]
lea rcx, [rbp - 0x49]
cmp r13, 0x10
cmovae rcx, rsi
mov r8d, dword [rbx]
mov rdx, rdi
call fcn.18005a570
test al, al
je 0x1800559df
mov rdx, r14
lea rcx, [rbp - 9]
call fcn.18005b270
nop
cmp byte [rbp + 0xf], 0
jne 0x180055aa4
mov r13, qword [rbp - 0x31]
mov rdi, qword [rbp - 0x39]
mov rsi, qword [rbp - 0x49]
add rbx, 4
lea rax, [rbp + 0x6f]
cmp rbx, rax
jne 0x1800559a1
mov ebx, 0x635c567d
mov dword [rbp - 0x69], ebx
mov dword [rbp - 0x65], 0xb74f33f2
mov dword [rbp - 0x61], 0xc838bbea
mov dword [rbp - 0x5d], 0x55d792a4
mov dword [rbp - 0x59], 0xe3c82ff
mov dword [rbp - 0x55], 0x5eea5f7
mov dword [rbp - 0x51], 0x2ce8b4bd
lea r15, [rbp - 0x69]
cmp r13, 0x10
setae al
mov byte [rbp + 0x67], al
nop dword [rax]
lea r11, [rbp - 0x49]
test al, al
cmovne r11, rsi
mov r9, rdi
test rdi, rdi
je 0x180055a8e
mov r8d, 0x7c3f72fb
mov r10, rdi
sub r10, r9
mov eax, 0
je 0x180055a7b
nop word [rax + rax]
lea rcx, [rax + r9]
movzx edx, byte [rcx + r11]
xor edx, r8d
imul r8d, edx, 0x1000193
inc rax
cmp rax, r10
jb 0x180055a60
cmp r8d, ebx
je 0x180055d70
sub r9, 1
jne 0x180055a42
movzx eax, byte [rbp + 0x67]
add r15, 4
lea rcx, [rbp - 0x4d]
cmp r15, rcx
je 0x180055d8c
mov ebx, dword [r15]
jmp 0x180055a30
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x69], xmm0
mov qword [rbp - 0x59], 0
mov qword [rbp - 0x51], 0
mov edx, 1
lea rcx, [rbp - 0x69]
call fcn.18002c0c0
mov rdi, qword [rbp - 0x69]
mov rsi, qword [rbp - 0x51]
mov byte [rdi + rsi], 6
inc rsi
mov qword [rbp - 0x51], rsi
mov rbx, qword [rbp - 0x61]
mov rax, rbx
sub rax, rdi
lea rdx, [rax + 1]
cmp rdx, rax
jae 0x180055af6
lea rbx, [rdx + rdi]
jmp 0x180055b22
jbe 0x180055b26
mov rax, qword [rbp - 0x59]
sub rax, rdi
cmp rdx, rax
jbe 0x180055b1b
lea rcx, [rbp - 0x69]
call fcn.18002c0c0
mov rsi, qword [rbp - 0x51]
mov rbx, qword [rbp - 0x61]
mov rdi, qword [rbp - 0x69]
jmp 0x180055b26
xor eax, eax
mov byte [rbx], al
inc rbx
mov qword [rbp - 0x61], rbx
mov byte [rdi + rsi], 0
inc rsi
mov qword [rbp - 0x51], rsi
lea rdx, [rbp - 0x29]
mov rcx, r14
call fcn.1800285b0
nop
movzx r14d, word [rbp - 0x19]
mov rax, rbx
sub rax, rdi
lea rdx, [rax + 2]
cmp rdx, rax
jae 0x180055b58
lea rbx, [rdx + rdi]
jmp 0x180055b86
jbe 0x180055b8a
mov rax, qword [rbp - 0x59]
sub rax, rdi
cmp rdx, rax
jbe 0x180055b7d
lea rcx, [rbp - 0x69]
call fcn.18002c0c0
mov rsi, qword [rbp - 0x51]
mov rbx, qword [rbp - 0x61]
mov rdi, qword [rbp - 0x69]
jmp 0x180055b8a
xor eax, eax
mov word [rbx], ax
add rbx, 2
mov qword [rbp - 0x61], rbx
mov word [rdi + rsi], r14w
add rsi, 2
mov qword [rbp - 0x51], rsi
sub rbx, rdi
mov rdx, qword [rbp - 0x19]
add rdx, rbx
lea rcx, [rbp - 0x69]
call fcn.18002b230
lea rdx, [rbp - 0x29]
cmp qword [rbp - 0x11], 0x10
cmovae rdx, qword [rbp - 0x29]
mov rdi, qword [rbp - 0x69]
mov rsi, qword [rbp - 0x51]
lea rcx, [rdi + rsi]
mov r8, qword [rbp - 0x19]
call fcn.18008c6d0
add rsi, qword [rbp - 0x19]
mov qword [rbp - 0x51], rsi
mov rdx, qword [rbp - 0x11]
cmp rdx, 0x10
jb 0x180055c10
inc rdx
mov rcx, qword [rbp - 0x29]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180055c0b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180055e3e
call fcn.18008a564
mov r14, qword [rbp - 1]
sub r14, qword [rbp - 9]
mov rbx, qword [rbp - 0x61]
mov rax, rbx
sub rax, rdi
lea rdx, [rax + 4]
cmp rdx, rax
jae 0x180055c31
lea rbx, [rdx + rdi]
jmp 0x180055c5e
jbe 0x180055c62
mov rax, qword [rbp - 0x59]
sub rax, rdi
cmp rdx, rax
jbe 0x180055c56
lea rcx, [rbp - 0x69]
call fcn.18002c0c0
mov rsi, qword [rbp - 0x51]
mov rbx, qword [rbp - 0x61]
mov rdi, qword [rbp - 0x69]
jmp 0x180055c62
xor eax, eax
mov dword [rbx], eax
add rbx, 4
mov qword [rbp - 0x61], rbx
mov dword [rdi + rsi], r14d
add rsi, 4
mov qword [rbp - 0x51], rsi
mov rax, rbx
sub rax, rdi
lea rdx, [rax + r14]
cmp rdx, rax
jae 0x180055c87
lea rax, [rdx + rdi]
mov qword [rbp - 0x61], rax
jmp 0x180055cbc
jbe 0x180055cbc
mov rax, qword [rbp - 0x59]
sub rax, rdi
cmp rdx, rax
jbe 0x180055ca8
lea rcx, [rbp - 0x69]
call fcn.18002c0c0
mov rsi, qword [rbp - 0x51]
mov rdi, qword [rbp - 0x69]
jmp 0x180055cbc
mov r8, r14
xor edx, edx
mov rcx, rbx
call fcn.18008cd80
add rbx, r14
mov qword [rbp - 0x61], rbx
lea rcx, [rdi + rsi]
mov r8, r14
mov rdx, qword [rbp - 9]
call fcn.18008c6d0
add rsi, r14
mov qword [rbp - 0x51], rsi
xor r9d, r9d
lea r8, [rbp - 0x69]
mov dl, inet_ntoa
lea rcx, [0x180118fd0]
call fcn.180059d90
nop
mov rcx, qword [rbp - 0x69]
test rcx, rcx
je 0x180055d24
mov rdx, qword [rbp - 0x59]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180055d1e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180055e44
call fcn.18008a564
nop
cmp byte [rbp + 0xf], 0
je 0x180055d64
mov rcx, qword [rbp - 9]
test rcx, rcx
je 0x180055d64
mov rdx, qword [rbp + 7]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180055d5f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180055e4a
call fcn.18008a564
mov bl, 1
mov r13, qword [rbp - 0x31]
mov rsi, qword [rbp - 0x49]
jmp 0x180055d8e
mov rdx, qword [rbp - 0x21]
mov rcx, r14
call fcn.1800550c0
test al, al
jne 0x180055d64
xor bl, bl
mov r13, qword [rbp - 0x31]
mov rsi, qword [rbp - 0x49]
jmp 0x180055d8e
xor bl, bl
cmp r13, 0x10
jb 0x180055dc5
lea rdx, [r13 + 1]
mov rax, rsi
cmp rdx, 0x1000
jb 0x180055dbd
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180055e50
mov rcx, rsi
call fcn.18008a564
mov qword [rbp - 0x39], 0
mov qword [rbp - 0x31], reloc.WS2_32.dll_ntohs
mov byte [rbp - 0x49], 0
mov rdx, qword [rbp + 0x2f]
cmp rdx, 8
jb 0x180055e15
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x17]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180055e10
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180055e38
call fcn.18008a564
movzx eax, bl
jmp 0x180055e1c
xor al, al
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
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