Function at 0x7ff6051c6c50
Capabilities:
Encode data using xor
Hash data using djb2

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0xb8]
sub rsp, 0x190
movaps xmmword [rax - 0x38], xmm6
mov rax, qword [0x7ff60566c600]
xor rax, rsp
mov qword [rbp + 0x78], rax
xor esi, esi
mov r8d, esi
mov edx, esi
mov rax, qword [0x7ff60574b268]
test rax, rax
je 0x7ff6051c6ca9
mov r8, qword [0x7ff60574b260]
mov rdx, rax
lock inc dword [rax + 0xc]
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x68], xmm1
test rdx, rdx
je 0x7ff6051c6cd8
mov eax, dword [rdx + 8]
test eax, eax
je 0x7ff6051c6cd8
nop dword [rax]
lea ecx, [rax + 1]
lock cmpxchg dword [rdx + 8], ecx
je 0x7ff6051c6cd0
test eax, eax
jne 0x7ff6051c6cc0
jmp 0x7ff6051c6cd8
mov qword [rbp + 0x68], r8
mov qword [rbp + 0x70], rdx
mov rdi, 0xffffffffffffffff
test rdx, rdx
je 0x7ff6051c6cf9
mov eax, edi
lock xadd dword [rdx + 0xc], eax
cmp eax, 1
jne 0x7ff6051c6cf9
mov rax, qword [rdx]
mov rcx, rdx
call qword [rax + 8]
movaps xmm1, xmmword [0x7ff605632610]
movdqa xmmword [rsp + 0x60], xmm1
movss xmm6, dword [0x7ff6056319a8]
movss dword [rsp + 0x70], xmm1
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
movss dword [rsp + 0x74], xmm0
shufps xmm1, xmm1, 0xaa
movss dword [rsp + 0x78], xmm1
movss dword [rsp + 0x7c], xmm6
movdqa xmm2, xmmword [0x7ff605632c10]
movdqu xmmword [rsp + 0x20], xmm2
mov dl, 0x33
mov r8b, 0x44
mov r9b, 0x72
mov r10b, 0x7a
mov r11b, 0x67
mov bl, 0x32
movdqa xmm0, xmm2
psrldq xmm0, 1
movd eax, xmm0
movd ecx, xmm2
xor al, cl
mov byte [rsp + 0x21], al
xor byte [rsp + 0x22], cl
xor byte [rsp + 0x23], cl
xor byte [rsp + 0x24], cl
xor byte [rsp + 0x25], cl
xor byte [rsp + 0x26], cl
xor byte [rsp + 0x27], cl
xor byte [rsp + 0x28], cl
xor byte [rsp + 0x29], cl
xor byte [rsp + 0x2a], cl
xor byte [rsp + 0x2b], cl
xor byte [rsp + 0x2c], cl
xor byte [rsp + 0x2d], cl
xor byte [rsp + 0x2e], cl
xor byte [rsp + 0x2f], cl
xor dl, cl
mov byte [rsp + 0x30], dl
xor r8b, cl
mov byte [rsp + 0x31], r8b
xor r9b, cl
mov byte [rsp + 0x32], r9b
xor r10b, cl
mov byte [rsp + 0x33], r10b
xor r11b, cl
mov byte [rsp + 0x34], r11b
xor bl, cl
mov byte [rsp + 0x35], bl
mov byte [rsp + 0x36], 0
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
mov qword [rbp - 0x70], rsi
mov qword [rbp - 0x68], rsi
lea rax, [rsp + 0x21]
mov r8, rdi
inc r8
cmp byte [rax + r8], 0
jne 0x7ff6051c6de6
lea rdx, [rsp + 0x21]
lea rcx, [rbp - 0x80]
call fcn.7ff605163830
nop
xorps xmm0, xmm0
movups xmmword [rbp - 0x60], xmm0
mov qword [rbp - 0x50], rsi
mov qword [rbp - 0x48], 0xf
mov byte [rbp - 0x60], 0
lea rcx, [rbp - 0x80]
mov rax, qword [rbp - 0x70]
mov r13d, 0x1505
mov r9d, r13d
cmp qword [rbp - 0x68], 0xf
jbe 0x7ff6051c6e32
mov rcx, qword [rbp - 0x80]
mov edx, r13d
lea r8, [rax + rcx]
cmp rcx, r8
je 0x7ff6051c6e50
nop
imul edx, edx, 0x21
movzx eax, byte [rcx]
xor edx, eax
inc rcx
cmp rcx, r8
jne 0x7ff6051c6e40
lea eax, [rdx + r9]
mov dword [rbp - 0x40], eax
mov edx, 0x2710
mov ecx, 0x3e8
call fcn.7ff6051cf2c0
mov qword [rbp - 0x38], rax
lea r8, [rsp + 0x60]
lea rdx, [rbp + 0x40]
mov rcx, qword [rbp + 0x68]
call fcn.7ff6051b01c0
mov rcx, qword [rbp + 0x48]
test rcx, rcx
je 0x7ff6051c6e9c
mov eax, edi
lock xadd dword [rcx + 0xc], eax
cmp eax, 1
jne 0x7ff6051c6e9c
mov rcx, qword [rbp + 0x48]
mov rax, qword [rcx]
call qword [rax + 8]
nop
lea rcx, [rbp - 0x60]
call fcn.7ff605162330
lea rcx, [rbp - 0x80]
call fcn.7ff605162330
call fcn.7ff6051b5760
lea rax, [0x7ff60574b0b0]
mov qword [rbp + 0x60], rax
mov rcx, rax
call qword [sym.imp.msvcp140.dll__Mtx_lock]
test eax, eax
je 0x7ff6051c6ed7
mov ecx, 5
call qword [sym.imp.msvcp140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
cmp dword [0x7ff60574b0fc], 0x7fffffff
jne 0x7ff6051c6ef9
mov dword [0x7ff60574b0fc], 0x7ffffffe
mov ecx, 6
call qword [sym.imp.msvcp140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
movaps xmm1, xmmword [0x7ff605632600]
movdqa xmmword [rbp - 0x30], xmm1
movss dword [rbp - 0x20], xmm1
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
movss dword [rbp - 0x1c], xmm0
shufps xmm1, xmm1, 0xaa
movss dword [rbp - 0x18], xmm1
movss dword [rbp - 0x14], xmm6
movdqa xmm2, xmmword [0x7ff605632980]
movdqu xmmword [rsp + 0x38], xmm2
mov cl, 0x6b
mov dl, 0x6f
mov r9b, 0x60
movzx r10d, cl
mov r11b, 0x6a
mov bl, 0x2e
mov dil, 0x48
mov sil, 0x67
mov r14b, 0x78
movzx r15d, cl
mov r12b, 0x43
movdqa xmm0, xmm2
psrldq xmm0, 1
movd eax, xmm0
movd r8d, xmm2
xor al, r8b
mov byte [rsp + 0x39], al
xor byte [rsp + 0x3a], r8b
xor byte [rsp + 0x3b], r8b
xor byte [rsp + 0x3c], r8b
xor byte [rsp + 0x3d], r8b
xor byte [rsp + 0x3e], r8b
xor byte [rsp + 0x3f], r8b
xor byte [rsp + 0x40], r8b
xor byte [rsp + 0x41], r8b
xor byte [rsp + 0x42], r8b
xor byte [rsp + 0x43], r8b
xor byte [rsp + 0x44], r8b
xor byte [rsp + 0x45], r8b
xor byte [rsp + 0x46], r8b
xor byte [rsp + 0x47], r8b
xor cl, r8b
mov byte [rsp + 0x48], cl
xor dl, r8b
mov byte [rsp + 0x49], dl
xor r9b, r8b
mov byte [rsp + 0x4a], r9b
xor r10b, r8b
mov byte [rsp + 0x4b], r10b
xor r11b, r8b
mov byte [rsp + 0x4c], r11b
xor bl, r8b
mov byte [rsp + 0x4d], bl
xor dil, r8b
mov byte [rsp + 0x4e], dil
xor sil, r8b
mov byte [rsp + 0x4f], sil
xor r14b, r8b
mov byte [rsp + 0x50], r14b
xor r15b, r8b
mov byte [rsp + 0x51], r15b
xor r12b, r8b
mov byte [rsp + 0x52], r12b
mov byte [rsp + 0x53], 0
xorps xmm0, xmm0
movups xmmword [rbp - 0x10], xmm0
xor ebx, ebx
mov qword [rbp], rbx
mov qword [rbp + 8], rbx
lea rax, [rsp + 0x39]
mov rdi, 0xffffffffffffffff
mov r8, rdi
nop dword [rax + rax]
inc r8
cmp byte [rax + r8], bl
jne 0x7ff6051c7030
lea rdx, [rsp + 0x39]
lea rcx, [rbp - 0x10]
call fcn.7ff605163830
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0x10], xmm0
mov qword [rbp + 0x20], rbx
mov qword [rbp + 0x28], 0xf
mov byte [rbp + 0x10], 0
lea rcx, [rbp - 0x10]
mov rax, qword [rbp]
mov r8d, r13d
cmp qword [rbp + 8], 0xf
jbe 0x7ff6051c7075
mov rcx, qword [rbp - 0x10]
lea rdx, [rax + rcx]
cmp rcx, rdx
je 0x7ff6051c7092
nop
imul r13d, r13d, 0x21
movzx eax, byte [rcx]
xor r13d, eax
inc rcx
cmp rcx, rdx
jne 0x7ff6051c7080
lea eax, [r8 + r13]
mov dword [rbp + 0x30], eax
mov edx, 0x15f90
mov ecx, 0x3e8
call fcn.7ff6051cf2c0
mov qword [rbp + 0x38], rax
lea r8, [rbp - 0x30]
lea rdx, [rbp + 0x50]
mov rcx, qword [rbp + 0x68]
call fcn.7ff6051b01c0
mov rcx, qword [rbp + 0x58]
test rcx, rcx
je 0x7ff6051c70dd
mov eax, edi
lock xadd dword [rcx + 0xc], eax
cmp eax, 1
jne 0x7ff6051c70dd
mov rcx, qword [rbp + 0x58]
mov rax, qword [rcx]
call qword [rax + 8]
nop
lea rcx, [rbp + 0x10]
call fcn.7ff605162330
lea rcx, [rbp - 0x10]
call fcn.7ff605162330
xchg byte [0x7ff605749af6], bl
lea rcx, [0x7ff60574b0b0]
call qword [sym.imp.msvcp140.dll__Mtx_unlock]
nop
mov rcx, qword [rbp + 0x70]
test rcx, rcx
je 0x7ff6051c7138
mov eax, edi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x7ff6051c7138
mov rbx, qword [rbp + 0x70]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x7ff6051c7138
mov rcx, qword [rbp + 0x70]
mov rax, qword [rcx]
call qword [rax + 8]
mov rcx, qword [rbp + 0x78]
xor rcx, rsp
call fcn.7ff60542acb0
lea r11, [rsp + 0x190]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret