Function at 0x14003c1ec
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 r12, [rcx + 0x40]
mov rcx, r12
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_AcquireSRWLockExclusive]
nop dword [rax + rax]
mov qword [rbp - 0x48], r12
xor eax, eax
mov byte [rbp + 0x48], al
mov r13b, 1
mov ebx, eax
mov qword [rbp + 0x60], rax
lock inc dword [r14 + 0x30]
lea r15, [r14 + 0x38]
mov rcx, r15
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 [0x1400b69bc]
seta al
xor r10d, r10d
test al, al
je 0x14003c379
lea r12, [r14 + 0x48]
mov rax, qword [r12]
mov rbx, qword [rax]
cmp rbx, rax
je 0x14003c36d
lea rcx, [rbx + 0x28]
call fcn.14003c88c
mov rdi, qword [rbx + 0x10]
xor r10d, r10d
test al, al
jne 0x14003c319
mov rax, rbx
cmp byte [rdi + 0x19], r10b
je 0x14003c2e6
mov rdi, qword [rbx + 8]
jmp 0x14003c2de
cmp rax, qword [rdi + 0x10]
jne 0x14003c2fe
mov rax, rdi
mov rdi, qword [rdi + 8]
cmp byte [rdi + 0x19], r10b
je 0x14003c2d1
jmp 0x14003c2fe
mov rcx, qword [rdi]
cmp byte [rcx + 0x19], r10b
jne 0x14003c2fe
mov rdi, rcx
mov rax, qword [rcx]
mov rcx, rax
cmp byte [rax + 0x19], r10b
je 0x14003c2ef
mov rdx, rbx
mov rcx, r12
call fcn.140015e70
mov rdx, rax
call fcn.14002f8b8
mov rbx, rdi
xor r10d, r10d
jmp 0x14003c358
cmp byte [rdi + 0x19], r10b
je 0x14003c33d
mov rax, qword [rbx + 8]
jmp 0x14003c332
cmp rbx, qword [rax + 0x10]
jne 0x14003c338
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], r10b
je 0x14003c325
mov rbx, rax
jmp 0x14003c358
mov rbx, rdi
mov rcx, qword [rdi]
cmp byte [rcx + 0x19], r10b
jne 0x14003c358
mov rbx, rcx
mov rax, qword [rcx]
mov rcx, rax
cmp byte [rax + 0x19], r10b
je 0x14003c349
mov rax, qword [r12]
mov qword [rbp - 0x40], rax
cmp rbx, rax
jne 0x14003c2ae
mov rdi, qword [rbp + 0x50]
mov qword [r14 + 0x58], rsi
lea r12, [r14 + 0x40]
mov rbx, qword [rbp + 0x60]
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 0x14003c43e
mov r10, qword [rcx + 0x40]
mov edx, dword [r10]
mov eax, edx
shr eax, 1
xor eax, dword [r9]
test al, 1
je 0x14003c3b8
int 0x2c
mov eax, edx
lock cmpxchg dword [r10], edx
cmp edx, eax
jne 0x14003c3a8
mov eax, dword [r9]
shr eax, 1
xor eax, edx
test al, 1
jne 0x14003c3e4
test edx, 0xfffffffc
movzx r13d, r13b
mov r10d, 0
cmova r13d, r10d
jmp 0x14003c3e7
xor r10d, r10d
mov rax, qword [rcx + 0x10]
cmp byte [rax + 0x19], r10b
je 0x14003c40f
mov rax, qword [rcx + 8]
jmp 0x14003c404
cmp rcx, qword [rax + 0x10]
jne 0x14003c40a
mov rcx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], r10b
je 0x14003c3f7
mov rcx, rax
jmp 0x14003c42a
mov rcx, rax
mov rdx, qword [rax]
cmp byte [rdx + 0x19], r10b
jne 0x14003c42a
mov rcx, rdx
mov rax, qword [rdx]
mov rdx, rax
cmp byte [rax + 0x19], r10b
je 0x14003c41b
cmp rcx, r8
jne 0x14003c3a4
test r13b, r13b
jne 0x14003c43e
inc dword [r14 + 0x64]
jmp 0x14003c46a
mov eax, dword [r9]
shr rax, 1
and eax, 1
imul rdx, rax, 0x100020
mov rcx, qword [r14 + 0x20]
lea rbx, [rcx + 0x10]
add rbx, rdx
mov eax, dword [r14 + 0x30]
mov dword [rdx + rcx + 8], eax
lock or dword [rsp], r10d
or dword [r9], 4
test r15, r15
je 0x14003c47e
mov rcx, r15
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_ReleaseSRWLockExclusive]
nop dword [rax + rax]
test r13b, r13b
je 0x14003c5f0
call fcn.140027fcc
mov rcx, qword [rax + 8]
xor r13d, r13d
test rcx, rcx
je 0x14003c4a7
cmp dword [rcx], r13d
jbe 0x14003c4a7
call fcn.140027fcc
call fcn.14003d5c4
mov rax, qword [rdi + 8]
mov rcx, qword [rax + 0xa8]
mov rax, qword [rcx]
mov r8d, 0x100000
mov rdx, rbx
mov rax, qword [rax + 0x18]
call qword [case.0x14007be6b.0]
mov ecx, eax
mov rax, qword [rdi]
mov dword [rax], ecx
mov rcx, qword [rdi + 0x10]
mov eax, dword [rbx + 4]
mov dword [rcx], eax
mov rcx, qword [rdi + 8]
mov rcx, qword [rcx + 0xa0]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_ResetEvent]
nop dword [rax + rax]
mov rcx, qword [rbp + 0x40]
test eax, eax
je 0x14003c747
call fcn.140027fcc
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x14003c518
cmp dword [rcx], r13d
jbe 0x14003c518
call fcn.140027fcc
call fcn.14003d538
mov r13b, 1
mov rcx, r15
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, 0x100020
mov rax, qword [r14 + 0x20]
mov dword [rcx + rax + 0xc], 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 0x14003c5d5
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 0x14003c575
mov rax, qword [r8 + 0x10]
xor r10d, r10d
cmp byte [rax + 0x19], r10b
je 0x14003c5ba
mov rax, qword [r8 + 8]
jmp 0x14003c5af
cmp r8, qword [rax + 0x10]
jne 0x14003c5b5
mov r8, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], r10b
je 0x14003c5a2
mov r8, rax
jmp 0x14003c5d5
mov r8, rax
mov rcx, qword [rax]
cmp byte [rcx + 0x19], r10b
jne 0x14003c5d5
mov r8, rcx
mov rax, qword [rcx]
mov rcx, rax
cmp byte [rax + 0x19], r10b
je 0x14003c5c6
cmp r8, r9
jne 0x14003c56d
test r15, r15
je 0x14003c5f4
mov rcx, r15
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_ReleaseSRWLockExclusive]
nop dword [rax + rax]
jmp 0x14003c5f4
mov r13b, byte [rbp + 0x48]
mov eax, dword [r14 + 0x60]
test eax, eax
je 0x14003c6fd
cmp dword [r14 + 0x64], eax
jl 0x14003c6fd
mov rcx, r15
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_AcquireSRWLockExclusive]
nop dword [rax + rax]
mov rbx, qword [rsi]
mov rdi, qword [rbx + 8]
jmp 0x14003c63c
mov r8, qword [rdi + 0x10]
mov rdx, rsi
mov rcx, rsi
call fcn.14002f944
mov rdx, rdi
mov rdi, qword [rdi]
call fcn.14002f8b8
cmp byte [rdi + 0x19], 0
je 0x14003c622
mov qword [rbx + 8], rbx
mov qword [rbx], rbx
mov qword [rbx + 0x10], rbx
xor edi, edi
mov qword [rsi + 8], rdi
mov ebx, 0x200048
mov edx, ebx
lea rcx, [rbp - 0x38]
call fcn.14006674c
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 0x14003c693
call qword [sym.imp.api_ms_win_core_handle_l1_1_0.dll_CloseHandle]
nop dword [rax + rax]
test eax, eax
je 0x14003c726
mov rax, qword [rbp - 0x28]
mov qword [r14 + 0x18], rax
mov qword [rbp - 0x28], rdi
mov qword [r14 + 0x20], rbx
mov eax, dword [rbp - 0x18]
mov dword [r14 + 0x28], eax
mov qword [rbp - 0x20], rdi
mov dword [rbp - 0x18], 0x8000ffff
mov dword [r14 + 0x64], edi
lea rcx, [rbp - 0x38]
call fcn.140066628
test r15, r15
je 0x14003c6d6
mov rcx, r15
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 0x14003c6ef
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.0x14007be6b.0]
nop
test r12, r12
je 0x14003c711
mov rcx, r12
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_ReleaseSRWLockExclusive]
nop dword [rax + rax]
mov al, r13b
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.140013e98
int3
lea r8, str.onecoreinternal_sdkincwilopensource_wil_resource.h
mov edx, 0x921
call fcn.140005db8
int3