Function at 0x140035b10
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1e8]
sub rsp, 0x2e8
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov rax, qword [0x14009e018]
xor rax, rsp
mov qword [rbp + 0x1d0], rax
mov r13, r9
mov r12, r8
mov rdi, rdx
mov r15, rcx
xor r10d, r10d
mov dword [rcx + 0x1f70], r10d
or rbx, 0xffffffffffffffff
inc rbx
cmp word [rdx + rbx*2], r10w
jne 0x140035b60
add ebx, ebx
mov eax, ebx
shr eax, 1
mov r14d, r10d
je 0x140035b92
mov esi, eax
movzx ecx, word [rdi]
call fcn.140055f70
movzx eax, ax
add r14d, eax
lea rdi, [rdi + 2]
sub rsi, 1
jne 0x140035b77
xor r10d, r10d
mov ecx, 0x566940c2
call fcn.140034c80
mov r8, rax
movdqa xmm2, xmmword [0x1400934f0]
mov rdx, r10
lea rcx, [rax + 0x54]
lea rax, [rsp + 0x60]
cmp rax, rcx
ja 0x140035bc1
lea rax, [rbp - 0x4c]
cmp rax, r8
jae 0x140035c0a
mov rax, r8
lea rcx, [rsp + 0x60]
sub rcx, r8
lea r9, [rsp + 0x70]
sub r9, r8
mov edx, 0x20
lea r10d, [rdx - 0x1e]
nop dword [rax]
movdqu xmm0, xmmword [rax]
movdqa xmm1, xmm2
pxor xmm1, xmm0
movdqu xmmword [rcx + rax], xmm1
movdqu xmm0, xmmword [rax + 0x10]
pxor xmm0, xmm2
movdqu xmmword [r9 + rax], xmm0
lea rax, [rax + 0x20]
sub r10, 1
jne 0x140035be0
lea rax, [rsp + 0x60]
sub r8, rax
mov r9d, 0x5017
nop dword [rax + rax]
lea rax, [r8 + rdx*2]
movzx ecx, word [rsp + rax + 0x60]
xor cx, r9w
mov word [rsp + rdx*2 + 0x60], cx
inc rdx
cmp rdx, 0x2b
jb 0x140035c20
mov word [rbp - 0x4a], r10w
shl ebx, 0x10
or ebx, r14d
mov r9d, ebx
lea r8, [rsp + 0x60]
mov edx, 0x208
lea rcx, [rbp - 0x40]
call fcn.14002a590
lea rdx, [rbp - 0x40]
lea rcx, [r15 + 0x1f68]
call fcn.1400359f0
test eax, eax
js 0x140035d99
mov qword [rsp + 0x20], r15
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.1400397c0
nop
xor ebx, ebx
mov qword [rsp + 0x20], rbx
mov rsi, qword [r15 + 0x1f68]
or edx, 0xffffffff
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x140035cbb
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
or edi, 0xe0ff0000
jl 0x140035d77
mov rbx, rsi
mov qword [rsp + 0x20], rbx
lea rcx, [rsp + 0x28]
call fcn.1400397d0
mov rcx, qword [rax]
mov qword [rax], 0
mov r8, qword [r15 + 0x1f60]
mov qword [r15 + 0x1f60], rcx
test r8, r8
je 0x140035cf7
mov rax, qword [r8]
mov edx, 1
mov rcx, r8
call qword [rax]
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x140035d0b
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov qword [rsp + 0x28], r15
lea rdx, [rsp + 0x28]
lea rcx, [rsp + 0x30]
call fcn.1400397c0
nop
mov rcx, qword [r15 + 0x1f60]
mov rax, qword [rcx]
mov r8, r13
mov rdx, r12
call qword [rax + 8]
mov edi, eax
test eax, eax
js 0x140035d63
mov rcx, r15
call fcn.1400366f0
mov edi, eax
test eax, eax
js 0x140035d63
mov rcx, r15
call fcn.1400362d0
mov edi, eax
test eax, eax
js 0x140035d63
mov al, 1
mov byte [rsp + 0x30], al
mov byte [rsp + 0x40], al
xor edi, edi
jmp 0x140035d68
movzx eax, byte [rsp + 0x30]
test al, al
jne 0x140035d77
lea rcx, [rsp + 0x30]
call fcn.140039600
nop
test rbx, rbx
je 0x140035d86
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
nop
cmp byte [rsp + 0x40], 0
jne 0x140035d97
lea rcx, [rsp + 0x40]
call fcn.140039610
mov eax, edi
mov rcx, qword [rbp + 0x1d0]
xor rcx, rsp
call fcn.140051aa0
add rsp, 0x2e8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret