Function at 0x14002ac30
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
push rbx
push r12
push r13
push r15
sub rsp, 0x58
mov rax, qword gs:[0x58]
mov r15, rcx
mov qword [rsp + 0x48], rsi
mov r12, rdx
mov ecx, 4
xor esi, esi
mov qword [rsp + 0x40], rdi
mov rdi, r8
mov rax, qword [rax]
mov eax, dword [rcx + rax]
cmp dword [0x1404e0750], eax
jle 0x14002acb9
lea rcx, [0x1404e0750]
call fcn.1401f6548
cmp dword [0x1404e0750], 0xffffffff
jne 0x14002acb1
lea rcx, [0x140244470]
mov qword [0x1404e0758], rsi
mov qword [0x1404e0760], rsi
call fcn.1401f6374
lea rcx, [0x1404e0750]
call fcn.1401f64dc
mov rdi, qword [rsp + 0x90]
movzx r13d, byte [rdi]
lea rbx, [rsp + 0x98]
cmp r13b, 0x15
jne 0x14002aeb7
mov rbx, qword [0x1404e0760]
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x38], r14
test rbx, rbx
je 0x14002ad06
mov rcx, rbx
mov qword [0x1404e0758], rsi
call fcn.14002d590
mov rdi, qword [rsp + 0x90]
mov rbx, rsi
mov qword [0x1404e0760], rbx
movzx esi, byte [rdi + 1]
lea r14, [rdi + 1]
mov ecx, dword [0x1404e0758]
mov ebp, 8
test sil, sil
je 0x14002add2
nop dword [rax]
nop word [rax + rax]
mov r8d, dword [0x1404e075c]
xor sil, 0x15
cmp ecx, r8d
jne 0x14002ada6
lea edi, [rcx + 1]
test r8d, r8d
je 0x14002ad55
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
add eax, r8d
jmp 0x14002ad57
mov eax, ebp
cmp eax, edi
cmovg edi, eax
cmp edi, r8d
jle 0x14002ada6
movsxd rcx, edi
call fcn.14002d570
mov rdx, qword [0x1404e0760]
mov rbx, rax
test rdx, rdx
je 0x14002ad93
movsxd r8, dword [0x1404e0758]
mov rcx, rax
call fcn.140230d70
mov rcx, qword [0x1404e0760]
call fcn.14002d590
mov ecx, dword [0x1404e0758]
mov qword [0x1404e0760], rbx
mov dword [0x1404e075c], edi
movsxd rax, ecx
inc r14
mov byte [rax + rbx], sil
mov ecx, dword [0x1404e0758]
mov rbx, qword [0x1404e0760]
inc ecx
mov dword [0x1404e0758], ecx
movzx esi, byte [r14]
test sil, sil
jne 0x14002ad30
mov r8d, dword [0x1404e075c]
mov r14, qword [rsp + 0x38]
cmp ecx, r8d
jne 0x14002ae46
lea edi, [rcx + 1]
test r8d, r8d
je 0x14002adf7
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
lea ebp, [r8 + rax]
cmp ebp, edi
cmovg edi, ebp
cmp edi, r8d
jle 0x14002ae46
movsxd rcx, edi
call fcn.14002d570
mov rdx, qword [0x1404e0760]
mov rbx, rax
test rdx, rdx
je 0x14002ae33
movsxd r8, dword [0x1404e0758]
mov rcx, rax
call fcn.140230d70
mov rcx, qword [0x1404e0760]
call fcn.14002d590
mov ecx, dword [0x1404e0758]
mov qword [0x1404e0760], rbx
mov dword [0x1404e075c], edi
movsxd rax, ecx
mov byte [rax + rbx], 0
inc dword [0x1404e0758]
call fcn.1400158a0
mov r9, qword [0x1404e0760]
xor edi, edi
mov r8, r12
mov rdx, r15
mov rcx, qword [rax]
lea rax, [rsp + 0x98]
mov qword [rsp + 0x28], rax
or rcx, 1
mov qword [rsp + 0x20], rdi
call fcn.140200658
mov rcx, qword [0x1404e0760]
mov ebx, eax
mov rbp, qword [rsp + 0x50]
test ebx, ebx
mov eax, 0xffffffff
cmovs ebx, eax
test rcx, rcx
je 0x14002aee7
mov qword [0x1404e0758], rdi
call fcn.14002d590
mov qword [0x1404e0760], rdi
jmp 0x14002aee7
call fcn.1400158a0
mov qword [rsp + 0x28], rbx
mov r9, rdi
mov r8, r12
mov qword [rsp + 0x20], rsi
mov rdx, r15
mov rcx, qword [rax]
or rcx, 1
call fcn.140200658
mov ebx, eax
mov eax, 0xffffffff
test ebx, ebx
cmovs ebx, eax
mov rdi, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
test r15, r15
je 0x14002af36
cmp r13b, 0x15
jne 0x14002af1f
movzx eax, byte [r15]
mov rcx, r15
test al, al
je 0x14002af1f
nop word [rax + rax]
xor al, 0x15
mov byte [rcx], al
lea rcx, [rcx + 1]
movzx eax, byte [rcx]
test al, al
jne 0x14002af10
cmp ebx, 0xffffffff
je 0x14002af29
cmp ebx, r12d
jl 0x14002af2e
lea ebx, [r12 - 1]
movsxd rax, ebx
mov byte [rax + r15], 0
mov eax, ebx
add rsp, 0x58
pop r15
pop r13
pop r12
pop rbx
ret