Function at 0x14009c2d4
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x10a8
call fcn.1401c1440
sub rsp, rax
mov rax, qword [0x1402bff08]
xor rax, rsp
mov qword [rsp + 0x1090], rax
mov r15d, r9d
mov qword [rsp + 0x70], r8
mov r12, r8
mov r13d, edx
mov rbx, rcx
call fcn.14008e898
xor r14d, r14d
test eax, eax
je 0x14009c57e
mov rcx, qword [rbx + 0xe0]
lea esi, [r14 - 4]
mov ebp, 0x80
call fcn.14009215c
mov edi, r14d
test r15d, r15d
jne 0x14009c34b
or edx, 0xffffffff
lea ecx, [r13 - 9]
cmp ecx, 1
cmovbe edi, edx
cmp qword [rbx + 0xe8], r14
je 0x14009c57e
test rax, rax
je 0x14009c57e
mov rcx, rax
call fcn.14009c228
mov r8, rax
mov qword [rsp + 0x68], rax
cmp dword [rbx + 0x70], r14d
jne 0x14009c38b
mov rcx, qword [rbx + 0xe8]
cmp qword [rcx + 0x2a8], r14
je 0x14009c38b
movzx ebp, r14w
mov rcx, qword [rbx + 0xe8]
mov edx, 1
jmp 0x14009c39b
pause
xor eax, eax
lock cmpxchg dword [rcx + 0x288], edx
je 0x14009c399
cmp edi, r15d
jge 0x14009c56c
mov ecx, 0x1000
test edi, edi
mov eax, r14d
mov esi, r15d
cmovns eax, edi
sub esi, eax
movsxd r14, eax
add r14, r12
cmp esi, ecx
cmovg esi, ecx
lea edi, [rsi + rax]
mov eax, dword [r8 + 4]
cmp edi, r15d
jl 0x14009c3f8
mov ecx, 0x8000
movzx edx, bp
or dx, cx
xor ecx, ecx
test eax, eax
jne 0x14009c3f0
movzx eax, r13w
jmp 0x14009c40e
mov dword [r8 + 4], ecx
mov eax, ecx
jmp 0x14009c40e
xor ecx, ecx
test eax, eax
jne 0x14009c408
mov dword [r8 + 4], edx
movzx eax, r13w
jmp 0x14009c40b
movzx eax, cx
movzx edx, bp
mov r9d, esi
lea rcx, [rsp + 0x78]
movzx r8d, ax
call fcn.1400a9314
movsxd r12, eax
test bp, bp
je 0x14009c511
mov edx, 4
lea rcx, [rsp + 0x60]
call fcn.1400cd150
xor eax, eax
test esi, esi
jle 0x14009c4b8
movsxd rcx, esi
lea r9d, [rax + 1]
sar rcx, 2
mov edx, eax
mov r8d, eax
test rcx, rcx
jle 0x14009c46f
mov edx, ecx
mov eax, dword [r14 + r8*4]
xor eax, dword [rsp + 0x60]
mov dword [rsp + r8*4 + 0x90], eax
add r8, r9
cmp r8, rcx
jl 0x14009c457
shl edx, 2
cmp edx, esi
jge 0x14009c4b8
movsxd rax, edx
lea r8, [rsp + 0x90]
add r8, rax
lea rax, [rsp + 0x90]
sub r14, rax
mov eax, edx
and eax, 0x80000003
jge 0x14009c4a1
sub eax, r9d
or eax, 0xfffffffc
add eax, r9d
cdqe
add edx, r9d
mov cl, byte [rsp + rax + 0x60]
xor cl, byte [r8 + r14]
mov byte [r8], cl
add r8, r9
cmp edx, esi
jl 0x14009c48f
mov rcx, qword [rbx + 0xe8]
lea r9, [rsp + 0x78]
mov edx, 2
movsxd rax, esi
mov dword [rsp + 0x58], edx
mov r8d, 0x40000003
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x90]
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], r12
call fcn.140089bd0
jmp 0x14009c549
mov rcx, qword [rbx + 0xe8]
lea r9, [rsp + 0x78]
mov edx, 2
movsxd rax, esi
mov dword [rsp + 0x40], edx
mov r8d, 0x40000002
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], edx
xor edx, edx
mov qword [rsp + 0x20], r12
call fcn.140089bd0
mov r8, qword [rsp + 0x68]
mov edx, 1
mov r12, qword [rsp + 0x70]
mov esi, eax
mov ecx, 0x1000
lea r14d, [rdx - 1]
cmp edi, r15d
jl 0x14009c3b5
mov rax, qword [rbx + 0xe8]
mov dword [rax + 0x288], r14d
mov eax, esi
jmp 0x14009c583
mov eax, 0xfffffffc
mov rcx, qword [rsp + 0x1090]
xor rcx, rsp
call fcn.1401c0ed0
add rsp, 0x10a8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret