Function at 0x14009b1dc
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 - 0xfa8]
mov eax, 0x10a8
call fcn.1401bc6a0
sub rsp, rax
mov rax, qword [0x1402b1ed0]
xor rax, rsp
mov qword [rbp + 0xf90], rax
mov rax, qword [rcx + 0xe0]
xor r14d, r14d
mov qword [rsp + 0x70], r8
mov r8d, edx
mov dword [rsp + 0x64], edx
mov r15d, r9d
mov dword [rsp + 0x68], r9d
mov rsi, rcx
mov ebx, 0xfffffffc
mov r12d, 0x80
mov edx, r14d
test rax, rax
je 0x14009b249
mov rax, qword [rax + 0x18]
jmp 0x14009b24c
mov rax, r14
test rax, rax
je 0x14009b254
mov rdx, qword [rax]
mov edi, r14d
test r15d, r15d
jne 0x14009b26b
lea ecx, [r8 - 9]
or r8d, 0xffffffff
cmp ecx, 1
cmovbe edi, r8d
cmp qword [rsi + 0xe8], r14
je 0x14009b4a3
test rdx, rdx
je 0x14009b4a3
mov rcx, rdx
call fcn.14009b140
mov r13, rax
cmp dword [rsi + 0x70], r14d
jne 0x14009b2a6
mov rcx, qword [rsi + 0xe8]
cmp qword [rcx + 0x2a8], r14
je 0x14009b2a6
movzx r12d, r14w
mov rcx, qword [rsi + 0xe8]
or edx, 0xffffffff
mov rcx, qword [rcx + 0x288]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp edi, r15d
jge 0x14009b488
mov edx, 0x1000
mov ecx, 0x8000
test edi, edi
mov eax, r14d
mov ebx, r15d
cmovns eax, edi
sub ebx, eax
movsxd r14, eax
add r14, qword [rsp + 0x70]
cmp ebx, edx
cmovg ebx, edx
movzx edx, r12w
mov r9d, ebx
lea edi, [rbx + rax]
cmp edi, r15d
jl 0x14009b410
or dx, cx
xor eax, eax
lea rcx, [rsp + 0x78]
cmp dword [r13 + 4], eax
jne 0x14009b315
movzx r8d, word [rsp + 0x64]
jmp 0x14009b31c
mov dword [r13 + 4], eax
xor r8d, r8d
call fcn.1400a803c
mov r15d, eax
test r12w, r12w
je 0x14009b42d
mov edx, 4
lea rcx, [rsp + 0x60]
call fcn.1400cbd40
xor eax, eax
test ebx, ebx
jle 0x14009b3b8
movsxd r8, ebx
mov edx, eax
sar r8, 2
mov r9d, eax
test r8, r8
jle 0x14009b37a
lea rax, [rbp - 0x70]
mov r10, r14
sub r10, rax
mov edx, r8d
lea rax, [r10 + r9*4]
mov ecx, dword [rbp + rax - 0x70]
xor ecx, dword [rsp + 0x60]
mov dword [rbp + r9*4 - 0x70], ecx
inc r9
cmp r9, r8
jl 0x14009b361
shl edx, 2
cmp edx, ebx
jge 0x14009b3b8
movsxd rax, edx
lea r8, [rbp - 0x70]
add r8, rax
lea rax, [rbp - 0x70]
sub r14, rax
mov eax, edx
and eax, 0x80000003
jge 0x14009b3a2
dec eax
or eax, 0xfffffffc
inc eax
cdqe
inc edx
mov cl, byte [rsp + rax + 0x60]
xor cl, byte [r8 + r14]
mov byte [r8], cl
inc r8
cmp edx, ebx
jl 0x14009b392
mov edx, 2
movsxd rax, ebx
mov dword [rsp + 0x58], edx
lea r9, [rsp + 0x78]
mov qword [rsp + 0x50], rax
mov r8d, 0x40000003
lea rax, [rbp - 0x70]
movsxd rcx, r15d
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x60]
mov dword [rsp + 0x40], edx
mov qword [rsp + 0x38], 4
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], edx
xor edx, edx
mov qword [rsp + 0x20], rcx
mov rcx, qword [rsi + 0xe8]
call fcn.1400893dc
jmp 0x14009b468
cmp dword [r13 + 4], 0
lea rcx, [rsp + 0x78]
jne 0x14009b319
mov dword [r13 + 4], 1
jmp 0x14009b30d
mov edx, 2
movsxd rax, ebx
mov dword [rsp + 0x40], edx
lea r9, [rsp + 0x78]
mov qword [rsp + 0x38], rax
mov r8d, 0x40000002
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], edx
xor edx, edx
movsxd rcx, r15d
mov qword [rsp + 0x20], rcx
mov rcx, qword [rsi + 0xe8]
call fcn.1400893dc
mov r15d, dword [rsp + 0x68]
mov ebx, eax
mov ecx, 0x8000
mov edx, 0x1000
mov r14d, 0
cmp edi, r15d
jl 0x14009b2d0
mov rcx, qword [rsi + 0xe8]
xor r8d, r8d
mov rcx, qword [rcx + 0x288]
lea edx, [r8 + 1]
call qword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
mov eax, ebx
mov rcx, qword [rbp + 0xf90]
xor rcx, rsp
call fcn.1401bc130
add rsp, 0x10a8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret