Function at 0x14000cc80
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rdi
push r12
lea rbp, [rsp - 0x2430]
mov eax, 0x2530
call fcn.140018490
sub rsp, rax
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov qword [rsp + 0x2558], rbx
mov qword [rsp + 0x2560], rsi
mov rax, qword [0x140028030]
xor rax, rsp
mov qword [rbp + 0x2420], rax
mov rdi, rcx
xor edx, edx
mov r8d, 0x1a00
lea rcx, [rsp + 0x40]
call qword [0x14002b6d0]
mov r8d, 0x1a00
mov rdx, rdi
lea rcx, [rsp + 0x40]
call qword [0x14002b6c8]
xor r12d, r12d
mov word [rbp + 0x1c20], r12w
xor edx, edx
mov r8d, 0x7fe
lea rcx, [rbp + 0x1c22]
call fcn.140010680
lea rcx, [rbp + 0xd98]
call qword [0x14002b6f0]
test rax, rax
je 0x14000cf2d
movsxd rdx, dword [rsp + 0x44]
lea rcx, [rbp + 0x19e0]
call fcn.140007e60
mov rsi, rax
mov edx, 7
mov qword [rbp + 0x1958], rdx
mov qword [rbp + 0x1950], r12
mov word [rbp + 0x1940], r12w
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rbp + 0xd98]
repne scasw ax, word [rdi]
not rcx
dec rcx
mov rbx, rcx
movabs rax, 0x7ffffffffffffffe
cmp rcx, rax
jbe 0x14000cd87
lea rcx, str.string_too_long
call fcn.140019618
int3
cmp rcx, rdx
jbe 0x14000cda7
xor r8d, r8d
mov rdx, rcx
lea rcx, [rbp + 0x1940]
call fcn.140009ac0
mov rdx, qword [rbp + 0x1958]
jmp 0x14000cdbb
test rcx, rcx
jne 0x14000cdbb
mov qword [rbp + 0x1950], r12
mov word [rbp + 0x1940], r12w
test rbx, rbx
setne al
test al, al
je 0x14000ce0e
lea rcx, [rbp + 0x1940]
cmp rdx, 8
cmovae rcx, qword [rbp + 0x1940]
lea rdi, [rbx + rbx]
mov r8, rdi
lea rdx, [rbp + 0xd98]
call fcn.14000eb70
mov qword [rbp + 0x1950], rbx
lea rax, [rbp + 0x1940]
cmp qword [rbp + 0x1958], 8
cmovae rax, qword [rbp + 0x1940]
mov word [rax + rdi], r12w
lea rdx, [rbp + 0x1940]
lea rcx, [rbp + 0x1968]
call fcn.140009c80
nop
mov rdx, rax
lea rcx, [rbp + 0x1990]
call fcn.140009cf0
nop
mov r8, rsi
mov rdx, rax
lea rcx, [rbp + 0x19b8]
call fcn.140009d60
nop
cmp qword [rbp + 0x19a8], 8
jb 0x14000ce5b
mov rcx, qword [rbp + 0x1990]
call fcn.14000eb4c
mov qword [rbp + 0x19a8], 7
mov qword [rbp + 0x19a0], r12
mov word [rbp + 0x1990], r12w
cmp qword [rbp + 0x1980], 8
jb 0x14000ce8b
mov rcx, qword [rbp + 0x1968]
call fcn.14000eb4c
mov qword [rbp + 0x1980], 7
mov qword [rbp + 0x1978], r12
mov word [rbp + 0x1968], r12w
cmp qword [rbp + 0x1958], 8
jb 0x14000cebb
mov rcx, qword [rbp + 0x1940]
call fcn.14000eb4c
mov qword [rbp + 0x1958], 7
mov qword [rbp + 0x1950], r12
mov word [rbp + 0x1940], r12w
cmp qword [rbp + 0x19f8], 8
jb 0x14000ceeb
mov rcx, qword [rbp + 0x19e0]
call fcn.14000eb4c
mov eax, dword [rbp + 0x19c8]
add eax, eax
lea rdx, [rbp + 0x19b8]
mov rbx, qword [rbp + 0x19b8]
mov rdi, qword [rbp + 0x19d0]
cmp rdi, 8
cmovae rdx, rbx
movsxd r8, eax
lea rcx, [rbp + 0x1c20]
call fcn.14000eb70
cmp rdi, 8
jb 0x14000cf2d
mov rcx, rbx
call fcn.14000eb4c
mov dword [rsp + 0x30], r12d
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x1198]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0xf98]
lea r8, [rbp + 0x1c20]
movzx edx, word [rsp + 0x40]
lea rcx, [rbp + 0x1398]
call fcn.14000c960
mov rbx, rax
test rax, rax
je 0x14000d1b0
mov byte [rbp + 0x1b20], 0
xor edx, edx
mov r8d, 0xff
lea rcx, [rbp + 0x1b21]
call fcn.140010680
lea rcx, [rbp + 0x948]
call qword [0x14002b6f0]
mov r8, rax
lea rdx, [rbp + 0x948]
lea rcx, [rbp + 0x1b20]
call fcn.140009430
mov byte [rbp + 0x1a20], 0
xor edx, edx
mov r8d, 0xff
lea rcx, [rbp + 0x1a21]
call fcn.140010680
mov r8d, 0x100
lea rdx, [rbp + 0x1b20]
lea rcx, [rbp + 0x1a20]
call qword [0x14002b6c8]
mov edx, r12d
mov edi, r12d
mov esi, dword [rsp + 0x30]
test esi, esi
je 0x14000d088
mov r8, rbx
mov r11d, esi
nop
inc edx
and edx, 0x800000ff
jge 0x14000d014
dec edx
or edx, 0xffffff00
inc edx
movsxd r9, edx
movzx r10d, byte [rbp + r9 + 0x1a20]
add edi, r10d
and edi, 0x800000ff
jge 0x14000d035
dec edi
or edi, 0xffffff00
inc edi
movsxd rcx, edi
movzx eax, byte [rbp + rcx + 0x1a20]
mov byte [rbp + r9 + 0x1a20], al
mov byte [rbp + rcx + 0x1a20], r10b
movzx ecx, byte [rbp + r9 + 0x1a20]
add ecx, r10d
and ecx, 0x800000ff
jge 0x14000d06e
dec ecx
or ecx, 0xffffff00
inc ecx
movsxd rax, ecx
movzx ecx, byte [rbp + rax + 0x1a20]
xor byte [r8], cl
inc r8
dec r11
jne 0x14000d000
mov dword [rsp + 0x34], r12d
mov r8d, 4
mov rdx, rbx
lea rcx, [rsp + 0x34]
call qword [0x14002b6c8]
or edx, 0xffffffff
lea rdi, [rbx + 4]
lea eax, [rsi - 4]
test eax, eax
jle 0x14000d0dc
mov r8d, eax
lea r10, [0x14002b7e0]
nop dword [rax]
movzx ecx, byte [rdi]
movzx eax, dl
xor rcx, rax
mov eax, edx
shr eax, 8
mov edx, dword [r10 + rcx*4]
xor edx, eax
inc rdi
dec r8
jne 0x14000d0c0
not edx
cmp edx, dword [rsp + 0x34]
je 0x14000d11b
mov rcx, rbx
call qword [0x14002b688]
call qword [0x14002b500]
mov edi, eax
mov eax, 0xcccccccd
mul edi
shr edx, 4
lea ecx, [rdx + rdx*4]
shl ecx, 2
sub edi, ecx
lea ecx, [rdi + 3]
imul ecx, ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x14000d1b0
lea rcx, [rbx + 4]
call fcn.14000e110
mov rdi, rax
test rax, rax
je 0x14000d1a7
mov dword [rbp + 0x1a08], 0x70747448
mov dword [rbp + 0x1a0c], 0x74696e49
mov byte [rbp + 0x1a10], 0
mov r8, qword [rax]
add r8, 0x88
cmp dword [r8 + 4], 0
je 0x14000d19f
lea rdx, [rbp + 0x1a08]
mov rcx, rax
call fcn.14000e2b0
test rax, rax
je 0x14000d19f
lea rcx, [0x14002bca0]
mov qword [rsp + 0x28], rcx
lea rcx, [rbp + 0xb98]
mov qword [rsp + 0x20], rcx
lea r9, [rbp + 0x1898]
lea r8, [rbp + 0x948]
mov edx, dword [rsp + 0x40]
lea rcx, [rbp + 0x1398]
call rax
mov rcx, rdi
call fcn.14000e370
mov rcx, rbx
call qword [0x14002b688]
xor al, al
mov rcx, qword [rbp + 0x2420]
xor rcx, rsp
call fcn.14000e440
lea r11, [rsp + 0x2530]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r12
pop rdi
pop rbp
ret