Function at 0x140001360
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
push r14
sub rsp, 0x68
mov rax, qword [0x140008010]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x98], rbp
mov rdi, rcx
mov qword [rsp + 0x60], r12
mov ecx, 0x20
mov qword [rsp + 0x58], r13
mov r14, r8
mov r13, r9
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x28], r8
mov rbp, rdx
call fcn.140003204
mov rbx, rax
mov eax, dword [rdi]
shl eax, 2
movsxd rcx, eax
call fcn.140003204
mov qword [rbx], rax
mov r8, rax
movsxd rcx, dword [rdi]
xor esi, esi
add rcx, rax
mov r9d, esi
mov qword [rbx + 8], rcx
mov ecx, dword [rdi]
add ecx, ecx
movsxd rdx, ecx
add rdx, rax
mov qword [rbx + 0x10], rdx
mov eax, dword [rdi]
lea eax, [rax + rax*2]
cdqe
add rax, r8
mov r8d, esi
mov qword [rbx + 0x18], rax
mov ecx, dword [rdi]
test ecx, ecx
jle 0x14000141d
mov rdx, rbp
nop dword [rax + rax]
mov rcx, qword [rbx]
lea r9, [r9 + 1]
movzx eax, byte [rdx]
lea rdx, [rdx + 4]
inc r8d
mov byte [r9 + rcx - 1], al
mov ecx, dword [rdi]
cmp r8d, ecx
jl 0x140001400
mov r8d, esi
mov r9, rsi
test ecx, ecx
jle 0x14000144e
lea rdx, [rbp + 1]
nop dword [rax + rax]
mov rcx, qword [rbx + 8]
lea r9, [r9 + 1]
movzx eax, byte [rdx]
lea rdx, [rdx + 4]
inc r8d
mov byte [r9 + rcx - 1], al
mov ecx, dword [rdi]
cmp r8d, ecx
jl 0x140001430
mov r8d, esi
mov r9, rsi
test ecx, ecx
jle 0x14000147e
lea rdx, [rbp + 2]
nop dword [rax]
mov rcx, qword [rbx + 0x10]
lea r9, [r9 + 1]
movzx eax, byte [rdx]
lea rdx, [rdx + 4]
inc r8d
mov byte [r9 + rcx - 1], al
mov ecx, dword [rdi]
cmp r8d, ecx
jl 0x140001460
mov r8d, esi
mov r9, rsi
test ecx, ecx
jle 0x1400014ae
lea rdx, [rbp + 3]
nop dword [rax]
mov rcx, qword [rbx + 0x18]
lea r9, [r9 + 1]
movzx eax, byte [rdx]
lea rdx, [rdx + 4]
inc r8d
mov byte [r9 + rcx - 1], al
mov ecx, dword [rdi]
cmp r8d, ecx
jl 0x140001490
mov eax, ecx
mov r8d, esi
imul eax, dword [rdi + 8]
mov r9, rsi
shl eax, 2
movsxd r10, eax
add r10, r13
test ecx, ecx
jle 0x1400014ed
mov rdx, r10
nop word [rax + rax]
mov rcx, qword [rbx]
lea r9, [r9 + 1]
movzx eax, byte [rdx]
lea rdx, [rdx + 4]
inc r8d
xor byte [rcx + r9 - 1], al
mov ecx, dword [rdi]
cmp r8d, ecx
jl 0x1400014d0
mov r8d, esi
mov r9, rsi
test ecx, ecx
jle 0x14000151e
lea rdx, [r10 + 1]
nop dword [rax + rax]
mov rcx, qword [rbx + 8]
lea r9, [r9 + 1]
movzx eax, byte [rdx]
lea rdx, [rdx + 4]
inc r8d
xor byte [rcx + r9 - 1], al
mov ecx, dword [rdi]
cmp r8d, ecx
jl 0x140001500
mov r8d, esi
mov r9, rsi
test ecx, ecx
jle 0x14000154e
lea rdx, [r10 + 2]
nop dword [rax]
mov rcx, qword [rbx + 0x10]
lea r9, [r9 + 1]
movzx eax, byte [rdx]
lea rdx, [rdx + 4]
inc r8d
xor byte [rcx + r9 - 1], al
mov ecx, dword [rdi]
cmp r8d, ecx
jl 0x140001530
mov r8d, esi
mov r9, rsi
test ecx, ecx
jle 0x14000157e
lea rdx, [r10 + 3]
nop dword [rax]
mov rcx, qword [rbx + 0x18]
lea r9, [r9 + 1]
movzx eax, byte [rdx]
lea rdx, [rdx + 4]
inc r8d
xor byte [rcx + r9 - 1], al
mov ecx, dword [rdi]
cmp r8d, ecx
jl 0x140001560
mov r12d, dword [rdi + 8]
lea rbp, [0x140000000]
dec r12d
cmp r12d, 1
jl 0x14000188d
mov qword [rsp + 0x50], r15
nop dword [rax + rax]
mov eax, dword [rdi]
mov r8d, esi
mov r9, rsi
test eax, eax
jle 0x1400015e0
nop dword [rax]
mov rdx, qword [rbx]
lea r9, [r9 + 1]
inc r8d
movzx eax, byte [rdx + r9 - 1]
mov ecx, eax
and eax, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rax
movzx eax, byte [rcx + rbp + 0x53d0]
mov byte [rdx + r9 - 1], al
mov eax, dword [rdi]
cmp r8d, eax
jl 0x1400015b0
mov r8d, esi
mov r9, rsi
test eax, eax
jle 0x140001621
nop word [rax + rax]
mov rdx, qword [rbx + 8]
lea r9, [r9 + 1]
inc r8d
movzx eax, byte [rdx + r9 - 1]
mov ecx, eax
and eax, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rax
movzx eax, byte [rcx + rbp + 0x53d0]
mov byte [rdx + r9 - 1], al
mov eax, dword [rdi]
cmp r8d, eax
jl 0x1400015f0
mov r8d, esi
mov r9, rsi
test eax, eax
jle 0x140001661
nop dword [rax + rax]
mov rdx, qword [rbx + 0x10]
lea r9, [r9 + 1]
inc r8d
movzx eax, byte [rdx + r9 - 1]
mov ecx, eax
and eax, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rax
movzx eax, byte [rcx + rbp + 0x53d0]
mov byte [rdx + r9 - 1], al
mov eax, dword [rdi]
cmp r8d, eax
jl 0x140001630
mov r8d, esi
mov r9, rsi
test eax, eax
jle 0x14000169f
nop dword [rax + rax]
mov rdx, qword [rbx + 0x18]
lea r9, [r9 + 1]
inc r8d
movzx eax, byte [rdx + r9 - 1]
mov ecx, eax
and eax, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rax
movzx eax, byte [rcx + rbp + 0x53d0]
mov byte [rdx + r9 - 1], al
cmp r8d, dword [rdi]
jl 0x140001670
mov rdx, rbx
mov rcx, rdi
call fcn.140001e20
mov ecx, dword [rdi]
mov r8d, esi
mov eax, ecx
mov r9, rsi
imul eax, r12d
shl eax, 2
movsxd r10, eax
add r10, r13
test ecx, ecx
jle 0x1400016ed
mov rdx, r10
nop dword [rax + rax]
mov rcx, qword [rbx]
lea r9, [r9 + 1]
movzx eax, byte [rdx]
lea rdx, [rdx + 4]
inc r8d
xor byte [rcx + r9 - 1], al
mov ecx, dword [rdi]
cmp r8d, ecx
jl 0x1400016d0
mov r8d, esi
mov r9, rsi
test ecx, ecx
jle 0x14000171e
lea rdx, [r10 + 1]
nop dword [rax + rax]
mov rcx, qword [rbx + 8]
lea r9, [r9 + 1]
movzx eax, byte [rdx]
lea rdx, [rdx + 4]
inc r8d
xor byte [rcx + r9 - 1], al
mov ecx, dword [rdi]
cmp r8d, ecx
jl 0x140001700
mov r8d, esi
mov r9, rsi
test ecx, ecx
jle 0x14000174e
lea rdx, [r10 + 2]
nop dword [rax]
mov rcx, qword [rbx + 0x10]
lea r9, [r9 + 1]
movzx eax, byte [rdx]
lea rdx, [rdx + 4]
inc r8d
xor byte [rcx + r9 - 1], al
mov ecx, dword [rdi]
cmp r8d, ecx
jl 0x140001730
mov r8d, esi
mov r9, rsi
test ecx, ecx
jle 0x14000177c
lea rdx, [r10 + 3]
nop dword [rax]
movzx eax, byte [rdx]
lea r9, [r9 + 1]
mov rcx, qword [rbx + 0x18]
lea rdx, [rdx + 4]
inc r8d
xor byte [rcx + r9 - 1], al
cmp r8d, dword [rdi]
jl 0x140001760
xorps xmm0, xmm0
mov r8, rsi
movups xmmword [rsp + 0x30], xmm0
nop word [rax + rax]
movzx r10d, byte [rsp + r8 + 0x30]
lea r15, [rbp + 0x53c0]
movzx r11d, byte [rsp + r8 + 0x31]
lea r13, [0x140000000]
movzx ebp, byte [rsp + r8 + 0x32]
add r15, r8
movzx r14d, byte [rsp + r8 + 0x33]
mov r9, rsi
nop dword [rax]
mov rcx, qword [rbx + r9*8]
movzx edx, byte [r15 + r9]
inc r9
shl rdx, 8
movzx eax, byte [rcx]
add rax, rdx
xor r10b, byte [rax + r13 + 0x55e0]
movzx eax, byte [rcx + 1]
add rax, rdx
xor r11b, byte [rax + r13 + 0x55e0]
movzx eax, byte [rcx + 2]
add rax, rdx
xor bpl, byte [rax + r13 + 0x55e0]
movzx eax, byte [rcx + 3]
add rax, rdx
xor r14b, byte [rax + r13 + 0x55e0]
cmp r9, 4
jb 0x1400017c0
mov byte [rsp + r8 + 0x32], bpl
lea rbp, [0x140000000]
mov byte [rsp + r8 + 0x30], r10b
mov byte [rsp + r8 + 0x31], r11b
mov byte [rsp + r8 + 0x33], r14b
add r8, 4
cmp r8, 0x10
jb 0x140001790
mov rcx, qword [rbx]
lea rbp, [0x140000000]
mov eax, dword [rsp + 0x30]
dec r12d
mov r13, qword [rsp + 0x20]
mov dword [rcx], eax
mov rcx, qword [rbx + 8]
mov eax, dword [rsp + 0x34]
mov dword [rcx], eax
mov rcx, qword [rbx + 0x10]
mov eax, dword [rsp + 0x38]
mov dword [rcx], eax
mov rcx, qword [rbx + 0x18]
mov eax, dword [rsp + 0x3c]
mov dword [rcx], eax
cmp r12d, 1
jge 0x1400015a0
mov r15, qword [rsp + 0x50]
lea rbp, [0x140000000]
mov ecx, dword [rdi]
mov r14, qword [rsp + 0x28]
mov r12, qword [rsp + 0x60]
mov r8d, esi
mov r9, rsi
test ecx, ecx
jle 0x1400018d0
nop dword [rax]
mov rdx, qword [rbx]
lea r9, [r9 + 1]
inc r8d
movzx eax, byte [rdx + r9 - 1]
mov ecx, eax
and eax, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rax
movzx eax, byte [rcx + rbp + 0x53d0]
mov byte [rdx + r9 - 1], al
mov ecx, dword [rdi]
cmp r8d, ecx
jl 0x1400018a0
mov r8d, esi
mov r9, rsi
test ecx, ecx
jle 0x140001911
nop word [rax + rax]
mov rdx, qword [rbx + 8]
lea r9, [r9 + 1]
inc r8d
movzx eax, byte [rdx + r9 - 1]
mov ecx, eax
and eax, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rax
movzx eax, byte [rcx + rbp + 0x53d0]
mov byte [rdx + r9 - 1], al
mov ecx, dword [rdi]
cmp r8d, ecx
jl 0x1400018e0
mov r8d, esi
mov r9, rsi
test ecx, ecx
jle 0x140001951
nop dword [rax + rax]
mov rdx, qword [rbx + 0x10]
lea r9, [r9 + 1]
inc r8d
movzx eax, byte [rdx + r9 - 1]
mov ecx, eax
and eax, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rax
movzx eax, byte [rcx + rbp + 0x53d0]
mov byte [rdx + r9 - 1], al
mov ecx, dword [rdi]
cmp r8d, ecx
jl 0x140001920
mov r8d, esi
mov r9, rsi
test ecx, ecx
jle 0x14000198f
nop dword [rax + rax]
mov rdx, qword [rbx + 0x18]
lea r9, [r9 + 1]
inc r8d
movzx eax, byte [rdx + r9 - 1]
mov ecx, eax
and eax, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rax
movzx eax, byte [rcx + rbp + 0x53d0]
mov byte [rdx + r9 - 1], al
cmp r8d, dword [rdi]
jl 0x140001960
mov rdx, rbx
mov rcx, rdi
call fcn.140001e20
mov eax, dword [rdi]
mov r8d, esi
mov rbp, qword [rsp + 0x98]
mov r9, rsi
test eax, eax
jle 0x1400019ce
mov rdx, r13
movzx eax, byte [rdx]
lea r9, [r9 + 1]
mov rcx, qword [rbx]
lea rdx, [rdx + 4]
inc r8d
xor byte [rcx + r9 - 1], al
mov eax, dword [rdi]
cmp r8d, eax
jl 0x1400019b1
mov r8d, esi
mov r9, rsi
test eax, eax
jle 0x1400019fe
lea rdx, [r13 + 1]
nop dword [rax]
movzx eax, byte [rdx]
lea r9, [r9 + 1]
mov rcx, qword [rbx + 8]
lea rdx, [rdx + 4]
inc r8d
xor byte [rcx + r9 - 1], al
mov eax, dword [rdi]
cmp r8d, eax
jl 0x1400019e0
mov r8d, esi
mov r9, rsi
test eax, eax
jle 0x140001a2e
lea rdx, [r13 + 2]
nop dword [rax]
movzx eax, byte [rdx]
lea r9, [r9 + 1]
mov rcx, qword [rbx + 0x10]
lea rdx, [rdx + 4]
inc r8d
xor byte [rcx + r9 - 1], al
mov eax, dword [rdi]
cmp r8d, eax
jl 0x140001a10
mov r8d, esi
mov r9, rsi
test eax, eax
jle 0x140001a5e
lea rdx, [r13 + 3]
nop dword [rax]
movzx eax, byte [rdx]
lea r9, [r9 + 1]
mov rcx, qword [rbx + 0x18]
lea rdx, [rdx + 4]
inc r8d
xor byte [rcx + r9 - 1], al
mov eax, dword [rdi]
cmp r8d, eax
jl 0x140001a40
mov r13, qword [rsp + 0x58]
mov r8d, esi
mov r9, rsi
test eax, eax
jle 0x140001a8e
mov rdx, r14
mov rax, qword [rbx]
lea r9, [r9 + 1]
inc r8d
lea rdx, [rdx + 4]
movzx ecx, byte [r9 + rax - 1]
mov byte [rdx - 4], cl
mov eax, dword [rdi]
cmp r8d, eax
jl 0x140001a70
mov r8d, esi
mov r9, rsi
test eax, eax
jle 0x140001abf
lea rdx, [r14 + 1]
nop dword [rax]
mov rax, qword [rbx + 8]
lea r9, [r9 + 1]
inc r8d
lea rdx, [rdx + 4]
movzx ecx, byte [r9 + rax - 1]
mov byte [rdx - 4], cl
mov eax, dword [rdi]
cmp r8d, eax
jl 0x140001aa0
mov r8d, esi
mov r9, rsi
test eax, eax
jle 0x140001aef
lea rdx, [r14 + 2]
nop dword [rax]
mov rax, qword [rbx + 0x10]
lea r9, [r9 + 1]
inc r8d
lea rdx, [rdx + 4]
movzx ecx, byte [r9 + rax - 1]
mov byte [rdx - 4], cl
mov eax, dword [rdi]
cmp r8d, eax
jl 0x140001ad0
mov r8, rsi
test eax, eax
jle 0x140001b1b
lea rdx, [r14 + 3]
nop word [rax + rax]
mov rax, qword [rbx + 0x18]
lea r8, [r8 + 1]
inc esi
lea rdx, [rdx + 4]
movzx ecx, byte [r8 + rax - 1]
mov byte [rdx - 4], cl
cmp esi, dword [rdi]
jl 0x140001b00
mov rcx, qword [rbx]
call fcn.1400031c0
mov rcx, rbx
call fcn.1400031c0
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.1400031a0
add rsp, 0x68
pop r14
pop rdi
pop rsi
pop rbx
ret