Function at 0x140048b50
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x68
mov rdi, rdx
mov r14, rcx
lea rbx, [rcx + 0x40]
mov rcx, rbx
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_AcquireSRWLockExclusive]
nop dword [rax + rax]
mov qword [rbp - 0x48], rbx
xor eax, eax
mov bl, al
mov byte [rbp + 0x48], al
mov r13b, 1
mov r15d, eax
mov qword [rbp + 0x60], rax
lock inc dword [r14 + 0x30]
lea r12, [r14 + 0x38]
mov rcx, r12
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_AcquireSRWLockExclusive]
nop dword [rax + rax]
lea rcx, [rbp + 0x58]
call qword [sym.imp.api_ms_win_core_profile_l1_1_0.dll_QueryPerformanceCounter]
nop dword [rax + rax]
mov rsi, qword [rbp + 0x58]
mov rax, rsi
sub rax, qword [r14 + 0x58]
imul rax, rax, 0x3e8
xorps xmm1, xmm1
cvtsi2sd xmm1, rax
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [0x1400cf298]
divsd xmm1, xmm0
cvtpd2ps xmm1, xmm1
comiss xmm1, dword [0x1400b6a14]
seta al
xor r10d, r10d
test al, al
je 0x140048cdd
lea r15, [r14 + 0x48]
mov rax, qword [r15]
mov rbx, qword [rax]
cmp rbx, rax
je 0x140048cd2
lea rcx, [rbx + 0x28]
call fcn.14003cfcc
mov rdi, qword [rbx + 0x10]
xor r10d, r10d
test al, al
jne 0x140048c7f
mov rax, rbx
cmp byte [rdi + 0x19], r10b
je 0x140048c4c
mov rdi, qword [rbx + 8]
jmp 0x140048c44
cmp rax, qword [rdi + 0x10]
jne 0x140048c64
mov rax, rdi
mov rdi, qword [rdi + 8]
cmp byte [rdi + 0x19], r10b
je 0x140048c37
jmp 0x140048c64
mov rcx, qword [rdi]
cmp byte [rcx + 0x19], r10b
jne 0x140048c64
mov rdi, rcx
mov rax, qword [rcx]
mov rcx, rax
cmp byte [rax + 0x19], r10b
je 0x140048c55
mov rdx, rbx
mov rcx, r15
call fcn.1400165c0
mov rdx, rax
call fcn.14002fff8
mov rbx, rdi
xor r10d, r10d
jmp 0x140048cbe
cmp byte [rdi + 0x19], r10b
je 0x140048ca3
mov rax, qword [rbx + 8]
jmp 0x140048c98
cmp rbx, qword [rax + 0x10]
jne 0x140048c9e
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], r10b
je 0x140048c8b
mov rbx, rax
jmp 0x140048cbe
mov rbx, rdi
mov rcx, qword [rdi]
cmp byte [rcx + 0x19], r10b
jne 0x140048cbe
mov rbx, rcx
mov rax, qword [rcx]
mov rcx, rax
cmp byte [rax + 0x19], r10b
je 0x140048caf
mov rax, qword [r15]
mov qword [rbp - 0x40], rax
cmp rbx, rax
jne 0x140048c14
mov rdi, qword [rbp + 0x50]
mov qword [r14 + 0x58], rsi
mov r15, qword [rbp + 0x60]
mov bl, r15b
mov r9, qword [r14 + 0x20]
mov eax, dword [r9]
lea ecx, [rax*2 - 2]
xor ecx, eax
and ecx, 2
xor ecx, eax
mov dword [r9], ecx
lea rsi, [r14 + 0x48]
mov r8, qword [rsi]
mov rcx, qword [r8]
cmp rcx, r8
je 0x140048da2
mov r10, qword [rcx + 0x40]
mov edx, dword [r10]
mov eax, edx
shr eax, 1
xor eax, dword [r9]
test al, 1
je 0x140048d1c
int 0x2c
mov eax, edx
lock cmpxchg dword [r10], edx
cmp edx, eax
jne 0x140048d0c
mov eax, dword [r9]
shr eax, 1
xor eax, edx
test al, 1
jne 0x140048d48
test edx, 0xfffffffc
movzx r13d, r13b
mov r10d, 0
cmova r13d, r10d
jmp 0x140048d4b
xor r10d, r10d
mov rax, qword [rcx + 0x10]
cmp byte [rax + 0x19], r10b
je 0x140048d73
mov rax, qword [rcx + 8]
jmp 0x140048d68
cmp rcx, qword [rax + 0x10]
jne 0x140048d6e
mov rcx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], r10b
je 0x140048d5b
mov rcx, rax
jmp 0x140048d8e
mov rcx, rax
mov rdx, qword [rax]
cmp byte [rdx + 0x19], r10b
jne 0x140048d8e
mov rcx, rdx
mov rax, qword [rdx]
mov rdx, rax
cmp byte [rax + 0x19], r10b
je 0x140048d7f
cmp rcx, r8
jne 0x140048d08
test r13b, r13b
jne 0x140048da2
inc dword [r14 + 0x64]
jmp 0x140048dce
mov eax, dword [r9]
shr rax, 1
and eax, 1
imul rdx, rax, 0x100f8
mov rcx, qword [r14 + 0x20]
lea r15, [rcx + 0xc]
add r15, rdx
mov eax, dword [r14 + 0x30]
mov dword [rdx + rcx + 4], eax
lock or dword [rsp], r10d
or dword [r9], 4
test r12, r12
je 0x140048de2
mov rcx, r12
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_ReleaseSRWLockExclusive]
nop dword [rax + rax]
test r13b, r13b
je 0x140048f12
mov rbx, qword [rdi]
mov rax, qword [rbx]
mov rdx, r15
mov rcx, qword [rax]
call fcn.14004fd50
mov rax, qword [rbx + 8]
mov rbx, qword [rax + 0x130]
lea rdi, [rbx + 8]
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_AcquireSRWLockShared]
nop dword [rax + rax]
mov ebx, dword [rbx + 0x14]
test rdi, rdi
je 0x140048e31
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_ReleaseSRWLockShared]
nop dword [rax + rax]
test ebx, ebx
setne al
mov byte [r15 + 0x4c], al
mov bl, 1
mov byte [rbp + 0x48], bl
mov rcx, r12
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_AcquireSRWLockExclusive]
nop dword [rax + rax]
mov r11, qword [r14 + 0x20]
mov ecx, dword [r11]
and ecx, 0xfffffffb
mov dword [r11], ecx
mov edx, dword [r14 + 0x30]
shr rcx, 1
and ecx, 1
imul rcx, rcx, 0x100f8
mov rax, qword [r14 + 0x20]
mov dword [rcx + rax + 8], edx
mov eax, dword [r11]
shr eax, 1
xor eax, dword [r11]
and eax, 1
xor dword [r11], eax
xor r10d, r10d
mov dword [r14 + 0x64], r10d
mov r9, qword [rsi]
mov r8, qword [r9]
jmp 0x140048ef9
mov r10, qword [r8 + 0x40]
prefetchw byte [r10]
mov edx, dword [r10]
mov ecx, dword [r11]
add ecx, ecx
xor ecx, edx
and ecx, 2
xor ecx, edx
mov eax, edx
lock cmpxchg dword [r10], ecx
cmp edx, eax
jne 0x140048e99
mov rax, qword [r8 + 0x10]
xor r10d, r10d
cmp byte [rax + 0x19], r10b
je 0x140048ede
mov rax, qword [r8 + 8]
jmp 0x140048ed3
cmp r8, qword [rax + 0x10]
jne 0x140048ed9
mov r8, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], r10b
je 0x140048ec6
mov r8, rax
jmp 0x140048ef9
mov r8, rax
mov rcx, qword [rax]
cmp byte [rcx + 0x19], r10b
jne 0x140048ef9
mov r8, rcx
mov rax, qword [rcx]
mov rcx, rax
cmp byte [rax + 0x19], r10b
je 0x140048eea
cmp r8, r9
jne 0x140048e91
test r12, r12
je 0x140048f12
mov rcx, r12
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_ReleaseSRWLockExclusive]
nop dword [rax + rax]
mov eax, dword [r14 + 0x60]
test eax, eax
je 0x14004901e
cmp dword [r14 + 0x64], eax
jl 0x14004901e
mov rcx, r12
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_AcquireSRWLockExclusive]
nop dword [rax + rax]
mov rdi, qword [rsi]
mov rbx, qword [rdi + 8]
xor r15d, r15d
jmp 0x140048f5d
mov r8, qword [rbx + 0x10]
mov rdx, rsi
mov rcx, rsi
call fcn.140030084
mov rdx, rbx
mov rbx, qword [rbx]
call fcn.14002fff8
cmp byte [rbx + 0x19], r15b
je 0x140048f43
mov qword [rdi + 8], rdi
mov qword [rdi], rdi
mov qword [rdi + 0x10], rdi
mov qword [rsi + 8], r15
mov ebx, 0x201f4
mov edx, ebx
lea rcx, [rbp - 0x38]
call fcn.140066e8c
mov r8d, ebx
mov rdx, qword [r14 + 0x20]
mov rbx, qword [rbp - 0x20]
mov rcx, rbx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov rcx, qword [r14 + 0x18]
test rcx, rcx
je 0x140048fb2
call qword [sym.imp.api_ms_win_core_handle_l1_1_0.dll_CloseHandle]
nop dword [rax + rax]
test eax, eax
je 0x140049047
mov rax, qword [rbp - 0x28]
mov qword [r14 + 0x18], rax
mov qword [rbp - 0x28], r15
mov qword [r14 + 0x20], rbx
mov eax, dword [rbp - 0x18]
mov dword [r14 + 0x28], eax
mov qword [rbp - 0x20], r15
mov dword [rbp - 0x18], 0x8000ffff
mov dword [r14 + 0x64], r15d
lea rcx, [rbp - 0x38]
call fcn.140066d68
test r12, r12
je 0x140048ff5
mov rcx, r12
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_ReleaseSRWLockExclusive]
nop dword [rax + rax]
mov rcx, qword [r14 + 0xa0]
test rcx, rcx
jne 0x14004900e
call qword [sym.imp.msvcp_win.dll_void___cdecl_std::_Xbad_function_call_void_]
nop dword [rax + rax]
int3
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14007c5ab.0]
mov bl, byte [rbp + 0x48]
lea rcx, [r14 + 0x40]
test rcx, rcx
je 0x140049033
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_ReleaseSRWLockExclusive]
nop dword [rax + rax]
mov al, bl
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
nop dword [rax + rax]
nop
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
call fcn.1400145e8
int3