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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xf8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x60], xmm6
mov qword [rbp + 0x58], 0xfffffffffffffffe
mov qword [rbp + 8], r8
mov rdi, rdx
mov qword [rbp - 0x40], rcx
movss xmm1, dword [0x14025e1f0]
xorps xmm0, xmm0
call fcn.1400a15f0
lea rcx, [rbp - 0x38]
call fcn.14009ea30
lea rcx, [rbp - 0x30]
call fcn.14009ea10
lea rcx, [rbp - 0x28]
call fcn.1400a16a0
movss xmm0, dword [rbp - 0x38]
addss xmm0, dword [0x14025e8d4]
subss xmm0, dword [rbp - 0x28]
addss xmm0, dword [rbp - 0x30]
call fcn.1400a16f0
movss xmm0, dword [0x14025e8d8]
call fcn.14007f170
movsxd rax, dword [rdi]
lea rcx, str.global
mov rdx, qword [rcx + rax*8]
lea rcx, str.context_mode
xor r8d, r8d
call fcn.1400cea20
movabs r13, 0x100000001b3
test al, al
je 0x140050c87
mov qword [rbp], rdi
xor r12d, r12d
xorps xmm6, xmm6
lea r15, [rbp + 0x30]
jmp 0x14005088d
inc r12
cmp r12, 3
je 0x140050c7e
lea rax, str.global
mov rbx, qword [rax + r12*8]
movaps xmmword [rbp + 0x40], xmm6
movaps xmmword [rbp + 0x30], xmm6
mov rcx, rbx
call fcn.14023e390
test rax, rax
js 0x140051324
mov rdi, rax
cmp rax, 0xf
mov qword [rbp - 0x18], r12
mov qword [rbp - 0x10], rbx
ja 0x1400508f0
mov qword [rbp + 0x40], rdi
mov qword [rbp + 0x48], reloc.WS2_32.dll_ntohs
mov rcx, r15
mov rdx, rbx
mov r8, rdi
call fcn.14021e3b0
add rdi, rbp
add rdi, 0x30
jmp 0x140050959
mov rsi, rdi
or rsi, 0xf
cmp rsi, 0x17
mov eax, reloc.WS2_32.dll_shutdown
cmovb rsi, rax
cmp rsi, 0xfff
jb 0x140050930
lea rcx, [rsi + 0x28]
call fcn.140140ff0
lea r14, [rax + 0x27]
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
jmp 0x14005093c
lea rcx, [rsi + 1]
call fcn.140140ff0
mov r14, rax
mov qword [rbp + 0x30], r14
mov qword [rbp + 0x40], rdi
mov qword [rbp + 0x48], rsi
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call fcn.14021e3b0
add rdi, r14
mov r14, r15
mov byte [rdi], 0
mov rcx, qword [rbp + 0x30]
mov r15, qword [rbp + 0x40]
mov r9, qword [rbp + 0x48]
cmp r9, 0x10
cmovae r14, rcx
movabs rbx, 0xcbf29ce484222325
test r15, r15
je 0x140050a36
lea rax, [r15 - 1]
mov r8d, r15d
and r8d, 3
cmp rax, 3
jae 0x1400509b0
xor edi, edi
movabs rax, 0xcbf29ce484222325
jmp 0x140050a0c
mov rsi, r15
and rsi, 0xfffffffffffffffc
xor edi, edi
movabs rax, 0xcbf29ce484222325
nop word cs:[rax + rax]
movzx edx, byte [r14 + rdi]
xor rdx, rax
imul rdx, r13
movzx ebx, byte [r14 + rdi + 1]
xor rbx, rdx
imul rbx, r13
movzx edx, byte [r14 + rdi + 2]
xor rdx, rbx
imul rdx, r13
movzx eax, byte [r14 + rdi + 3]
xor rax, rdx
imul rax, r13
add rdi, 4
cmp rsi, rdi
jne 0x1400509d0
mov rbx, rax
test r8, r8
je 0x140050a36
add rdi, r14
xor esi, esi
nop dword [rax]
movzx ebx, byte [rdi + rsi]
xor rbx, rax
imul rbx, r13
inc rsi
mov rax, rbx
cmp r8, rsi
jne 0x140050a20
and rbx, qword [0x14032b460]
mov rax, qword [0x14032b448]
mov rdx, rbx
shl rdx, 4
mov rsi, qword [rax + rdx + 8]
cmp rsi, qword [0x14032b438]
je 0x140050ac0
mov qword [rbp - 8], r9
mov rdi, rcx
add rbx, rbx
mov r12, qword [rax + rbx*8]
cmp r15, qword [rsi + 0x20]
jne 0x140050aa3
jmp 0x140050a7a
mov rsi, qword [rsi + 8]
cmp r15, qword [rsi + 0x20]
jne 0x140050aa3
cmp qword [rsi + 0x28], 0x10
jb 0x140050a90
mov rdx, qword [rsi + 0x10]
jmp 0x140050a94
lea rdx, [rsi + 0x10]
mov rcx, r14
mov r8, r15
call fcn.14021e2b0
test eax, eax
je 0x140050aaa
cmp rsi, r12
jne 0x140050a70
xor esi, esi
mov rcx, rdi
mov r9, qword [rbp - 8]
jmp 0x140050ac2
xor esi, esi
cmp r9, 0x10
lea r15, [rbp + 0x30]
jb 0x140050afd
lea rdx, [r9 + 1]
cmp rdx, 0x1000
jb 0x140050af8
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x140051329
add r9, 0x28
mov rdx, r9
mov rcx, rax
call fcn.140141034
test rsi, rsi
mov r12, qword [rbp - 0x18]
je 0x140050880
movaps xmmword [rbp + 0x40], xmm6
movaps xmmword [rbp + 0x30], xmm6
mov rsi, qword [rbp - 0x10]
mov rcx, rsi
call fcn.14023e390
test rax, rax
js 0x140051324
mov rdi, rax
cmp rax, 0xf
ja 0x140050b60
mov qword [rbp + 0x40], rdi
mov qword [rbp + 0x48], reloc.WS2_32.dll_ntohs
mov rcx, r15
mov rdx, rsi
mov r8, rdi
call fcn.14021e3b0
add rdi, rbp
add rdi, 0x30
jmp 0x140050bcb
mov rbx, rsi
mov qword [rbp + 0x48], reloc.WS2_32.dll_ntohs
mov rsi, rdi
or rsi, 0xf
cmp rsi, 0x17
mov eax, reloc.WS2_32.dll_shutdown
cmovb rsi, rax
cmp rsi, 0xfff
jb 0x140050b9f
lea rcx, [rsi + 0x28]
call fcn.140140ff0
lea r14, [rax + 0x27]
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
jmp 0x140050bab
lea rcx, [rsi + 1]
call fcn.140140ff0
mov r14, rax
mov qword [rbp + 0x30], r14
mov qword [rbp + 0x40], rdi
mov qword [rbp + 0x48], rsi
mov rcx, r14
mov rsi, rbx
mov rdx, rbx
mov r8, rdi
call fcn.14021e3b0
add rdi, r14
mov byte [rdi], 0
lea rcx, [0x14032b430]
lea rdx, [rbp + 0x10]
mov r8, r15
call fcn.14005a2f0
mov rax, qword [rbp + 0x10]
mov ebx, dword [rax + 0x30]
mov rax, qword [rbp + 0x48]
cmp rax, 0x10
jb 0x140050c27
mov rcx, qword [rbp + 0x30]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140050c22
mov rdi, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rdi
cmp rcx, 0x20
jae 0x140051329
add rax, 0x28
mov rdx, rax
mov rcx, rdi
call fcn.140141034
mov rax, qword [rbp]
mov edi, dword [rax]
cmp edi, ebx
sete dl
movlps qword [rbp + 0x30], xmm6
mov rcx, rsi
xor r8d, r8d
mov r9, r15
call fcn.1400cf2f0
test al, al
je 0x140050c6c
mov rax, qword [rbp]
mov dword [rax], ebx
cmp r12d, 1
je 0x140050c61
cmp r12d, 2
jne 0x140050c6c
mov eax, 0x438b4f64
jmp 0x140050c66
mov eax, 0x339c158b
mov rcx, qword [rbp + 8]
mov dword [rcx], eax
cmp edi, ebx
jne 0x140050880
call fcn.14009ed20
jmp 0x140050880
call fcn.1400cf2d0
mov rdi, qword [rbp]
cmp dword [rdi], 0
jle 0x14005130a
movabs rsi, 0xcbf29ce484222325
movss xmm1, dword [0x14025e1f0]
xorps xmm0, xmm0
call fcn.1400a15f0
movss xmm0, dword [rbp - 0x38]
addss xmm0, dword [0x14025e8dc]
subss xmm0, dword [rbp - 0x28]
addss xmm0, dword [rbp - 0x30]
call fcn.1400a16f0
movss xmm0, dword [0x14025e8e0]
call fcn.14007f170
mov edi, dword [rdi]
mov rbx, qword [rbp + 8]
movzx eax, byte [rbx]
xor rax, rsi
imul rax, r13
movzx ecx, byte [rbx + 1]
xor rcx, rax
imul rcx, r13
movzx edx, byte [rbx + 2]
xor rdx, rcx
imul rdx, r13
movzx eax, byte [rbx + 3]
xor rax, rdx
imul rax, r13
mov dword [rbp - 0x1c], edi
cmp edi, 1
lea rdx, [0x14032b3f0]
lea rcx, [0x14032b370]
cmove rcx, rdx
lea rdx, [0x14025e660]
lea rbx, str.r301
cmove rbx, rdx
mov qword [rbp - 0x50], rbx
mov edx, 8
mov ebx, reloc.WLDAP32.dll_Ordinal_33
cmove ebx, edx
mov dword [rbp], ebx
lea rdx, [0x14032b3b0]
lea rbx, [0x14032b330]
cmove rbx, rdx
mov qword [rbp - 0x48], rbx
lea rdx, [0x14032b420]
lea rbx, [0x14032b3a0]
cmove rbx, rdx
lea rdx, [0x14032b408]
lea rdi, [0x14032b388]
cmove rdi, rdx
lea rdx, [0x14032b3f8]
lea rsi, [0x14032b378]
cmove rsi, rdx
mov rdi, qword [rdi]
and rax, qword [rbx]
mov rdx, rax
shl rdx, 4
mov rdx, qword [rdi + rdx + 8]
cmp rdx, qword [rsi]
je 0x140050ddd
mov rbx, qword [rbp + 8]
mov ebx, dword [rbx]
cmp ebx, dword [rdx + 0x10]
je 0x140050dce
add rax, rax
mov rax, qword [rdi + rax*8]
nop word [rax + rax]
cmp rdx, rax
je 0x140050ddd
mov rdx, qword [rdx + 8]
cmp ebx, dword [rdx + 0x10]
jne 0x140050dc0
lea rdx, [rbp + 0x10]
mov r8, qword [rbp + 8]
call fcn.14005a750
jmp 0x140050df1
mov dword [rbp - 0x60], 0
lea rdx, [rbp + 0x10]
lea r8, [rbp - 0x60]
call fcn.14005a750
mov rsi, qword [rbp + 0x10]
xorps xmm0, xmm0
movaps xmmword [rbp + 0x40], xmm0
movaps xmmword [rbp + 0x30], xmm0
mov rdi, qword [rsi + 0x28]
cmp qword [rsi + 0x30], 0x10
jb 0x140050e11
mov rsi, qword [rsi + 0x18]
jmp 0x140050e15
add rsi, 0x18
test rdi, rdi
js 0x140051324
cmp rdi, 0xf
ja 0x140050e39
mov qword [rbp + 0x40], rdi
mov qword [rbp + 0x48], reloc.WS2_32.dll_ntohs
movups xmm0, xmmword [rsi]
movaps xmmword [rbp + 0x30], xmm0
jmp 0x140050ea0
mov rax, rdi
or rax, 0xf
cmp rax, 0x17
mov ebx, reloc.WS2_32.dll_shutdown
cmovae rbx, rax
cmp rbx, 0xfff
jb 0x140050e6d
lea rcx, [rbx + 0x28]
call fcn.140140ff0
lea rcx, [rax + 0x27]
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x140050e79
lea rcx, [rbx + 1]
call fcn.140140ff0
mov rcx, rax
mov qword [rbp + 0x30], rcx
mov qword [rbp + 0x40], rdi
mov qword [rbp + 0x48], rbx
inc rdi
mov rdx, rsi
mov r8, rdi
call fcn.14021e3b0
cmp qword [rbp + 0x48], 0x10
jb 0x140050ea0
mov rdx, qword [rbp + 0x30]
jmp 0x140050ea4
lea rdx, [rbp + 0x30]
mov rcx, qword [rbp - 0x40]
xor r8d, r8d
call fcn.1400cea20
test al, al
je 0x1400512cf
xor edi, edi
xorps xmm6, xmm6
lea r12, [rbp + 0x10]
jmp 0x140050ed6
mov rdi, qword [rbp - 0x10]
inc edi
cmp edi, dword [rbp]
jae 0x1400512ca
mov eax, edi
mov rcx, qword [rbp - 0x50]
mov r14, qword [rcx + rax*8]
movaps xmmword [rbp + 0x20], xmm6
movaps xmmword [rbp + 0x10], xmm6
mov rcx, r14
call fcn.14023e390
test rax, rax
js 0x14005132e
mov rsi, rax
cmp rax, 0xf
mov qword [rbp - 0x10], rdi
mov qword [rbp - 0x18], r14
ja 0x140050f40
mov qword [rbp + 0x20], rsi
mov qword [rbp + 0x28], reloc.WS2_32.dll_ntohs
mov rcx, r12
mov rdx, r14
mov r8, rsi
call fcn.14021e3b0
add rsi, rbp
add rsi, 0x10
jmp 0x140050fa9
mov rbx, rsi
or rbx, 0xf
cmp rbx, 0x17
mov eax, reloc.WS2_32.dll_shutdown
cmovb rbx, rax
cmp rbx, 0xfff
jb 0x140050f80
lea rcx, [rbx + 0x28]
call fcn.140140ff0
mov rdi, rax
add rdi, 0x27
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x140050f8c
lea rcx, [rbx + 1]
call fcn.140140ff0
mov rdi, rax
mov qword [rbp + 0x10], rdi
mov qword [rbp + 0x20], rsi
mov qword [rbp + 0x28], rbx
mov rcx, rdi
mov rdx, r14
mov r8, rsi
call fcn.14021e3b0
add rsi, rdi
mov byte [rsi], 0
mov rax, qword [rbp + 0x10]
mov rbx, qword [rbp + 0x20]
mov r14, qword [rbp + 0x28]
cmp r14, 0x10
mov qword [rbp - 8], rax
cmovae r12, rax
movabs rdx, 0xcbf29ce484222325
test rbx, rbx
je 0x140051086
lea rcx, [rbx - 1]
mov eax, ebx
and eax, 3
cmp rcx, 3
jae 0x140051000
xor ecx, ecx
movabs rsi, 0xcbf29ce484222325
jmp 0x14005105c
mov rdi, rbx
and rdi, 0xfffffffffffffffc
xor ecx, ecx
movabs rsi, 0xcbf29ce484222325
nop word cs:[rax + rax]
movzx edx, byte [r12 + rcx]
xor rdx, rsi
imul rdx, r13
movzx esi, byte [r12 + rcx + 1]
xor rsi, rdx
imul rsi, r13
movzx edx, byte [r12 + rcx + 2]
xor rdx, rsi
imul rdx, r13
movzx esi, byte [r12 + rcx + 3]
xor rsi, rdx
imul rsi, r13
add rcx, 4
cmp rdi, rcx
jne 0x140051020
mov rdx, rsi
test rax, rax
je 0x140051086
add rcx, r12
xor edi, edi
nop dword [rax]
movzx edx, byte [rcx + rdi]
xor rdx, rsi
imul rdx, r13
inc rdi
mov rsi, rdx
cmp rax, rdi
jne 0x140051070
cmp dword [rbp - 0x1c], 1
lea rcx, [0x14032b360]
lea rax, [0x14032b3e0]
cmove rcx, rax
lea rax, [0x14032b348]
lea rdi, [0x14032b3c8]
cmove rax, rdi
lea rdi, [0x14032b338]
lea rsi, [0x14032b3b8]
cmove rdi, rsi
mov rax, qword [rax]
and rdx, qword [rcx]
mov rcx, rdx
shl rcx, 4
mov r15, qword [rax + rcx + 8]
cmp r15, qword [rdi]
je 0x140051128
add rdx, rdx
mov rsi, qword [rax + rdx*8]
cmp rbx, qword [r15 + 0x20]
jne 0x140051123
jmp 0x1400510fa
mov r15, qword [r15 + 8]
cmp rbx, qword [r15 + 0x20]
jne 0x140051123
cmp qword [r15 + 0x28], 0x10
jb 0x140051110
mov rdx, qword [r15 + 0x10]
jmp 0x140051114
lea rdx, [r15 + 0x10]
mov rcx, r12
mov r8, rbx
call fcn.14021e2b0
test eax, eax
je 0x14005112b
cmp r15, rsi
jne 0x1400510f0
xor r15d, r15d
cmp r14, 0x10
jb 0x140051179
lea rdx, [r14 + 1]
cmp rdx, 0x1000
jb 0x140051170
mov rcx, qword [rbp - 8]
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x140051329
add r14, 0x28
mov rdx, r14
mov rcx, rax
jmp 0x140051174
mov rcx, qword [rbp - 8]
call fcn.140141034
test r15, r15
lea r12, [rbp + 0x10]
mov r14, qword [rbp - 0x18]
je 0x140050ed0
movaps xmmword [rbp + 0x20], xmm6
movaps xmmword [rbp + 0x10], xmm6
mov rcx, r14
call fcn.14023e390
test rax, rax
js 0x140051333
mov rsi, rax
cmp rax, 0xf
ja 0x1400511d0
mov qword [rbp + 0x20], rsi
mov qword [rbp + 0x28], reloc.WS2_32.dll_ntohs
mov rcx, r12
mov rdx, r14
mov r8, rsi
call fcn.14021e3b0
add rsi, rbp
add rsi, 0x10
jmp 0x140051238
mov qword [rbp + 0x28], reloc.WS2_32.dll_ntohs
mov rbx, rsi
or rbx, 0xf
cmp rbx, 0x17
mov eax, reloc.WS2_32.dll_shutdown
cmovb rbx, rax
cmp rbx, 0xfff
jb 0x14005120f
lea rcx, [rbx + 0x28]
call fcn.140140ff0
mov rdi, rax
add rdi, 0x27
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x14005121b
lea rcx, [rbx + 1]
call fcn.140140ff0
mov rdi, rax
mov qword [rbp + 0x10], rdi
mov qword [rbp + 0x20], rsi
mov qword [rbp + 0x28], rbx
mov rcx, rdi
mov rdx, r14
mov r8, rsi
call fcn.14021e3b0
add rsi, rdi
mov byte [rsi], 0
mov rcx, qword [rbp - 0x48]
lea rdx, [rbp - 0x60]
mov r8, r12
call fcn.14005a2f0
mov rax, qword [rbp - 0x60]
mov esi, dword [rax + 0x30]
mov rax, qword [rbp + 0x28]
cmp rax, 0x10
jb 0x140051291
mov rcx, qword [rbp + 0x10]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14005128c
mov rbx, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rbx
cmp rcx, 0x20
jae 0x140051329
add rax, 0x28
mov rdx, rax
mov rcx, rbx
call fcn.140141034
mov rax, qword [rbp + 8]
mov edi, dword [rax]
cmp edi, esi
sete dl
movlps qword [rbp + 0x10], xmm6
mov rcx, r14
xor r8d, r8d
mov r9, r12
call fcn.1400cf2f0
test al, al
je 0x1400512b8
mov rax, qword [rbp + 8]
mov dword [rax], esi
cmp edi, esi
jne 0x140050ed0
call fcn.14009ed20
jmp 0x140050ed0
call fcn.1400cf2d0
mov rax, qword [rbp + 0x48]
cmp rax, 0x10
jb 0x14005130a
mov rcx, qword [rbp + 0x30]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140051305
mov rbx, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rbx
cmp rcx, 0x20
jae 0x140051329
add rax, 0x28
mov rdx, rax
mov rcx, rbx
call fcn.140141034
xor eax, eax
movaps xmm6, xmmword [rbp + 0x60]
add rsp, 0xf8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.1400026a0
call fcn.140231990
call fcn.1400026a0
call fcn.1400026a0
int3