Function at 0x1400849b8
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov byte [rax + 0x18], r8b
mov qword [rax + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov rbx, qword [rcx + 0x30]
lea r15, [r9 + 0x10]
xor edi, edi
mov qword [rsp + 0x40], r15
xor r14d, r14d
mov qword [rax - 0x68], rdi
xor ecx, ecx
mov dword [rsp + 0xa0], r14d
xor r10d, r10d
mov r13, r9
movzx eax, byte [r15 + r10]
inc r10
add eax, ecx
imul ecx, eax, 0x401
mov eax, ecx
shr eax, 6
xor ecx, eax
cmp r10, 8
jb 0x1400849fd
mov r8b, byte [rsp + 0xc0]
mov ebp, 2
mov r15b, byte [rsp + 0xb0]
add r8b, bpl
cmp r8b, r15b
jae 0x140084a81
movzx edx, r8b
mov al, r15b
shl rdx, 4
add rdx, r9
sub al, r8b
movzx r10d, al
mov r9d, dword [rdx + 8]
xor r8d, r8d
mov r11, qword [rdx]
test r9, r9
je 0x140084a77
movzx eax, byte [r8 + r11]
inc r8
add eax, ecx
imul ecx, eax, 0x401
mov eax, ecx
shr eax, 6
xor ecx, eax
cmp r8, r9
jb 0x140084a5b
add rdx, 0x10
sub r10, 1
jne 0x140084a4c
lea eax, [rcx + rcx*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
lea rax, [rbx + 0x108]
imul r12d, ecx, 0x8001
mov rcx, rax
mov qword [rsp + 0x48], rax
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_AcquireSRWLockShared]
mov eax, r12d
and eax, 0x1f
lea rsi, [rbx + rax*8]
cmp qword [rsi], 0
jne 0x140084b1d
cmp dword [rbx + 0x100], 0x400
jae 0x140084c51
test rdi, rdi
jne 0x140084b0b
mov r9b, byte [rsp + 0xc0]
lea rax, [rsp + 0x30]
mov rcx, qword [rsp + 0xa8]
mov r8, r13
mov qword [rsp + 0x28], rax
mov dl, r15b
mov dword [rsp + 0x20], r12d
call fcn.140084784
mov rdi, qword [rsp + 0x30]
mov dword [rsp + 0xa0], eax
test rdi, rdi
je 0x140084bbf
xor eax, eax
lock cmpxchg qword [rsi], rdi
je 0x140084bd9
mov rdi, qword [rsp + 0x30]
mov r14, qword [rsi]
cmp r12d, dword [r14 + 0x28]
je 0x140084b2f
mov eax, r12d
sub eax, dword [r14 + 0x28]
jmp 0x140084ba1
mov r13, qword [r14 + 0x10]
mov r8d, 8
mov rcx, qword [rsp + 0x40]
lea rdx, [r13 + 0x10]
call sub.api_ms_win_crt_private_l1_1_0.dll_memcmp
test eax, eax
jne 0x140084b99
movzx esi, byte [r14 + 0x2d]
add esi, ebp
movzx r15d, r15b
jmp 0x140084b8a
mov r9, qword [rsp + 0xb8]
mov ecx, esi
shl rcx, 4
mov eax, dword [rcx + r9 + 8]
sub eax, dword [rcx + r13 + 8]
jne 0x140084b91
mov r8d, dword [rcx + r9 + 8]
mov rdx, qword [rcx + r13]
mov rcx, qword [rcx + r9]
call sub.api_ms_win_crt_private_l1_1_0.dll_memcmp
test eax, eax
jne 0x140084b91
inc esi
cmp esi, r15d
jb 0x140084b58
xor eax, eax
mov r15b, byte [rsp + 0xb0]
mov r13, qword [rsp + 0xb8]
test eax, eax
je 0x140084c61
cdqe
lea rsi, [r14 + 0x20]
sar rax, 0x3f
and rax, 0xfffffffffffffff8
add rsi, rax
jmp 0x140084ab1
cmp eax, 8
jne 0x140084bd1
inc dword [rbx + 0x130]
mov ebx, eax
jmp 0x140084d10
inc dword [rbx + 0x134]
jmp 0x140084bca
and qword [rsp + 0x30], 0
mov eax, 1
lock xadd dword [rbx + 0x100], eax
inc eax
cmp eax, 1
jne 0x140084c2f
mov rcx, qword [rbx + 0x158]
test rcx, rcx
je 0x140084c2f
mov eax, dword [rbx + 0x160]
mov r9d, 0x1388
imul rax, rax, 0xffffffffffffd8f0
xor r8d, r8d
mov rdx, rax
mov dword [rsp + 0x38], eax
shr rdx, 0x20
mov dword [rsp + 0x3c], edx
lea rdx, [rsp + 0x38]
call qword [sym.imp.api_ms_win_core_threadpool_l1_2_0.dll_SetThreadpoolTimer]
mov eax, dword [rbx + 0x100]
mov rdi, qword [rsp + 0x30]
cmp dword [rbx + 0x120], eax
jae 0x140084d09
mov dword [rbx + 0x120], eax
jmp 0x140084d09
inc dword [rbx + 0x12c]
mov ebx, 0xea
jmp 0x140084d10
test r14, r14
je 0x140084d09
movzx ebx, byte [rsp + 0xc0]
add ebx, ebp
cmp ebx, ebp
jbe 0x140084d09
movzx ecx, bpl
add rcx, rcx
mov rax, qword [r13 + rcx*8]
mov r8, qword [rax]
mov rax, qword [r14 + 0x10]
movzx r11d, byte [rax + rcx*8 + 0xd]
mov r9, qword [rax + rcx*8]
cmp r11d, 0x71
je 0x140084cf0
lea eax, [r11 - 0x72]
cmp eax, 1
ja 0x140084cf5
mov r10, qword [r9]
xor edx, edx
cmp r8, r10
setl dl
xor ecx, ecx
cmp r8, r10
setg cl
cmp r11d, 0x72
cmove ecx, edx
test ecx, ecx
je 0x140084cf5
mov rax, r10
lock cmpxchg qword [r9], r8
je 0x140084cf5
mov r10, qword [r9]
xor ecx, ecx
cmp r8, r10
setl cl
xor eax, eax
cmp r8, r10
setg al
cmp r11b, 0x72
cmove eax, ecx
test eax, eax
jne 0x140084cc6
jmp 0x140084cf5
lock xadd qword [r9], r8
inc bpl
movzx eax, bpl
cmp eax, ebx
jb 0x140084c7c
mov rdi, qword [rsp + 0x30]
mov ebx, dword [rsp + 0xa0]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_ReleaseSRWLockShared]
test rdi, rdi
je 0x140084d35
call qword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
mov r8, qword [rdi + 0x10]
xor edx, edx
mov rcx, rax
call qword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapFree]
mov eax, ebx
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret