Function at 0x140c57d00
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
sub rsp, 0x150
mov rax, qword [0x14100f500]
xor rax, rsp
mov qword [rsp + 0x140], rax
mov ebp, r8d
mov rsi, rdx
mov rdi, rcx
xor edx, edx
mov r8d, 0x120
lea rcx, [rsp + 0x20]
call fcn.140da1bb0
mov ecx, 0x2000000
call fcn.140c5e230
test eax, eax
je 0x140c57d5f
mov rcx, rdi
shr rcx, 2
and ecx, 3
je 0x140c57d5f
mov eax, 4
sub eax, ecx
jmp 0x140c57d61
xor eax, eax
lea rax, [rax + 4]
mov r8d, ebp
lea rbx, [rdi + rax*4]
mov rdx, rsi
lea rcx, [rsp + 0x20]
mov qword [rdi + 8], rbx
call fcn.140c57fc0
mov esi, eax
test eax, eax
jne 0x140c57f88
mov edx, dword [rsp + 0x20]
mov ecx, 0x2000000
mov dword [rdi], edx
call fcn.140c5e230
test eax, eax
je 0x140c57db1
mov r8d, dword [rdi]
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rdi + 8]
call fcn.140c5e2a0
jmp 0x140c57f88
mov eax, dword [rsp + 0x20]
lea eax, [rax*4]
movsxd rcx, eax
mov rax, qword [rsp + 0x28]
lea rax, [rax + rcx*4]
mov ecx, dword [rax]
mov dword [rbx], ecx
mov ecx, dword [rax + 4]
mov dword [rbx + 4], ecx
mov ecx, dword [rax + 8]
mov dword [rbx + 8], ecx
mov ecx, dword [rax + 0xc]
sub rax, 0x10
mov dword [rbx + 0xc], ecx
add rbx, 0x10
mov r10d, dword [rdi]
dec r10d
test r10d, r10d
jle 0x140c57f72
lea r11, [0x140000000]
nop dword [rax]
movzx ecx, byte [rax + 3]
dec r10d
movzx r8d, byte [rcx + r11 + 0x10a5a60]
movzx ecx, byte [rax + 2]
mov r9d, dword [r11 + r8*4 + 0x10a7860]
movzx edx, byte [rcx + r11 + 0x10a5a60]
movzx ecx, byte [rax + 1]
xor r9d, dword [r11 + rdx*4 + 0x10a7460]
movzx edx, byte [rcx + r11 + 0x10a5a60]
movzx ecx, byte [rax]
xor r9d, dword [r11 + rdx*4 + 0x10a7060]
movzx edx, byte [rcx + r11 + 0x10a5a60]
xor r9d, dword [r11 + rdx*4 + 0x10a6c60]
mov dword [rbx], r9d
movzx ecx, byte [rax + 7]
movzx r8d, byte [rcx + r11 + 0x10a5a60]
movzx ecx, byte [rax + 6]
mov r9d, dword [r11 + r8*4 + 0x10a7860]
movzx edx, byte [rcx + r11 + 0x10a5a60]
movzx ecx, byte [rax + 5]
xor r9d, dword [r11 + rdx*4 + 0x10a7460]
movzx edx, byte [rcx + r11 + 0x10a5a60]
movzx ecx, byte [rax + 4]
xor r9d, dword [r11 + rdx*4 + 0x10a7060]
movzx edx, byte [rcx + r11 + 0x10a5a60]
xor r9d, dword [r11 + rdx*4 + 0x10a6c60]
mov dword [rbx + 4], r9d
movzx ecx, byte [rax + 0xb]
movzx r8d, byte [rcx + r11 + 0x10a5a60]
movzx ecx, byte [rax + 0xa]
mov r9d, dword [r11 + r8*4 + 0x10a7860]
movzx edx, byte [rcx + r11 + 0x10a5a60]
movzx ecx, byte [rax + 9]
xor r9d, dword [r11 + rdx*4 + 0x10a7460]
movzx edx, byte [rcx + r11 + 0x10a5a60]
movzx ecx, byte [rax + 8]
xor r9d, dword [r11 + rdx*4 + 0x10a7060]
movzx edx, byte [rcx + r11 + 0x10a5a60]
xor r9d, dword [r11 + rdx*4 + 0x10a6c60]
mov dword [rbx + 8], r9d
movzx ecx, byte [rax + 0xf]
movzx r8d, byte [rcx + r11 + 0x10a5a60]
movzx ecx, byte [rax + 0xe]
mov r9d, dword [r11 + r8*4 + 0x10a7860]
movzx edx, byte [rcx + r11 + 0x10a5a60]
movzx ecx, byte [rax + 0xd]
xor r9d, dword [r11 + rdx*4 + 0x10a7460]
movzx edx, byte [rcx + r11 + 0x10a5a60]
movzx ecx, byte [rax + 0xc]
sub rax, 0x10
xor r9d, dword [r11 + rdx*4 + 0x10a7060]
movzx edx, byte [rcx + r11 + 0x10a5a60]
xor r9d, dword [r11 + rdx*4 + 0x10a6c60]
mov dword [rbx + 0xc], r9d
add rbx, 0x10
test r10d, r10d
jg 0x140c57e00
mov ecx, dword [rax]
mov dword [rbx], ecx
mov ecx, dword [rax + 4]
mov dword [rbx + 4], ecx
mov ecx, dword [rax + 8]
mov dword [rbx + 8], ecx
mov ecx, dword [rax + 0xc]
mov dword [rbx + 0xc], ecx
mov edx, 0x120
lea rcx, [rsp + 0x20]
call fcn.140c5d6e0
mov eax, esi
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.140cd9320
mov rbx, qword [rsp + 0x188]
add rsp, 0x150
pop rdi
pop rsi
pop rbp
ret