Function at 0x140bf4990
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
sub rsp, 0x150
mov rax, qword [0x140db81c0]
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.140c85fe0
mov ecx, 0x2000000
call fcn.140bfaec0
test eax, eax
je 0x140bf49ef
mov rcx, rdi
shr rcx, 2
and ecx, 3
je 0x140bf49ef
mov eax, 4
sub eax, ecx
jmp 0x140bf49f1
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.140bf4c50
mov esi, eax
test eax, eax
jne 0x140bf4c18
mov edx, dword [rsp + 0x20]
mov ecx, 0x2000000
mov dword [rdi], edx
call fcn.140bfaec0
test eax, eax
je 0x140bf4a41
mov r8d, dword [rdi]
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rdi + 8]
call fcn.140bfaf30
jmp 0x140bf4c18
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 0x140bf4c02
lea r11, [0x140000000]
nop dword [rax]
movzx ecx, byte [rax + 3]
dec r10d
movzx r8d, byte [rcx + r11 + 0xdbd670]
movzx ecx, byte [rax + 2]
mov r9d, dword [r11 + r8*4 + 0xdbf470]
movzx edx, byte [rcx + r11 + 0xdbd670]
movzx ecx, byte [rax + 1]
xor r9d, dword [r11 + rdx*4 + 0xdbf070]
movzx edx, byte [rcx + r11 + 0xdbd670]
movzx ecx, byte [rax]
xor r9d, dword [r11 + rdx*4 + 0xdbec70]
movzx edx, byte [rcx + r11 + 0xdbd670]
xor r9d, dword [r11 + rdx*4 + 0xdbe870]
mov dword [rbx], r9d
movzx ecx, byte [rax + 7]
movzx r8d, byte [rcx + r11 + 0xdbd670]
movzx ecx, byte [rax + 6]
mov r9d, dword [r11 + r8*4 + 0xdbf470]
movzx edx, byte [rcx + r11 + 0xdbd670]
movzx ecx, byte [rax + 5]
xor r9d, dword [r11 + rdx*4 + 0xdbf070]
movzx edx, byte [rcx + r11 + 0xdbd670]
movzx ecx, byte [rax + 4]
xor r9d, dword [r11 + rdx*4 + 0xdbec70]
movzx edx, byte [rcx + r11 + 0xdbd670]
xor r9d, dword [r11 + rdx*4 + 0xdbe870]
mov dword [rbx + 4], r9d
movzx ecx, byte [rax + 0xb]
movzx r8d, byte [rcx + r11 + 0xdbd670]
movzx ecx, byte [rax + 0xa]
mov r9d, dword [r11 + r8*4 + 0xdbf470]
movzx edx, byte [rcx + r11 + 0xdbd670]
movzx ecx, byte [rax + 9]
xor r9d, dword [r11 + rdx*4 + 0xdbf070]
movzx edx, byte [rcx + r11 + 0xdbd670]
movzx ecx, byte [rax + 8]
xor r9d, dword [r11 + rdx*4 + 0xdbec70]
movzx edx, byte [rcx + r11 + 0xdbd670]
xor r9d, dword [r11 + rdx*4 + 0xdbe870]
mov dword [rbx + 8], r9d
movzx ecx, byte [rax + 0xf]
movzx r8d, byte [rcx + r11 + 0xdbd670]
movzx ecx, byte [rax + 0xe]
mov r9d, dword [r11 + r8*4 + 0xdbf470]
movzx edx, byte [rcx + r11 + 0xdbd670]
movzx ecx, byte [rax + 0xd]
xor r9d, dword [r11 + rdx*4 + 0xdbf070]
movzx edx, byte [rcx + r11 + 0xdbd670]
movzx ecx, byte [rax + 0xc]
sub rax, 0x10
xor r9d, dword [r11 + rdx*4 + 0xdbec70]
movzx edx, byte [rcx + r11 + 0xdbd670]
xor r9d, dword [r11 + rdx*4 + 0xdbe870]
mov dword [rbx + 0xc], r9d
add rbx, 0x10
test r10d, r10d
jg 0x140bf4a90
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.140bfa370
mov eax, esi
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.140c4bf60
mov rbx, qword [rsp + 0x188]
add rsp, 0x150
pop rdi
pop rsi
pop rbp
ret