Function at 0x140018220
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rsi, rcx
mov edi, dword [rcx]
call fcn.14004b020
cdqe
lea rcx, [0x1400636e0]
cmp edi, dword [rcx + rax*4]
jne 0x1400183c1
mov r13d, dword [rsi + 4]
lea r14, [0x140063780]
lea r15, [0x1400637a0]
mov r12d, 0x270
nop word cs:[rax + rax]
call fcn.14004b090
cdqe
lea rcx, [0x1400636ec]
and r13d, dword [rcx + rax*4]
call fcn.14004b130
cdqe
lea rcx, [0x140063700]
mov rax, qword [rcx + rax*8]
add rax, r12
mov edi, dword [rsi + rax*4 + 4]
call fcn.14004b1b0
cdqe
lea rcx, [0x140063718]
mov ebp, dword [rcx + rax*4]
and ebp, edi
or ebp, r13d
call fcn.14004b220
cdqe
lea rcx, [0x140063724]
movzx ecx, byte [rcx + rax*4]
shr ebp, cl
call fcn.14004b2a0
cdqe
lea rcx, [0x140063730]
mov r13d, dword [rcx + rax*4]
and r13d, edi
call fcn.14004b310
imul eax, dword [0x1401f2fd0], 0xb63f8d9b
imul ecx, dword [0x1401f2fd4], 0xf2c50456
add eax, ecx
add eax, 0x29dea756
mov ecx, dword [0x1401f2fd8]
mov edx, dword [0x1401f2fdc]
shrd edx, ecx, 0x12
imul ecx, dword [0x1401f2fe0], 0x663db25
imul r8d, dword [0x1401f2fe4], 0x85cc07f7
xor edx, 0x7f11d94b
cmp r13d, eax
mov eax, r8d
lea r13d, [rcx + rax + 0x6e182411]
cmove r13d, edx
call fcn.14004b3a0
cdqe
lea rcx, [0x14006373c]
mov ebx, dword [rcx + rax*4]
and ebx, ebp
call fcn.14004b420
cdqe
lea rcx, [0x140063748]
xor ebx, dword [rcx + rax*4]
and ebx, r13d
call fcn.14004b490
cdqe
lea rcx, [0x140063754]
xor r13d, dword [rcx + rax*4]
and r13d, ebp
or r13d, ebx
call fcn.14004b510
cdqe
lea rcx, [0x140063760]
mov rax, qword [rcx + rax*8]
add rax, r12
xor r13d, dword [rsi + rax*4 + 4]
mov dword [rsi + r12*4 + 4], r13d
call fcn.14004b580
cdqe
mov rbx, r12
add rbx, qword [r14 + rax*8]
call fcn.14004b600
cdqe
mov r13d, edi
mov r12, rbx
cmp rbx, qword [r15 + rax*8]
jne 0x140018270
mov eax, 0x270
jmp 0x1400183e1
call fcn.14004b670
movsxd rcx, eax
lea rdx, [0x1400637b8]
mov eax, edi
cmp edi, dword [rdx + rcx*4]
jbe 0x1400183e1
mov rcx, rsi
call fcn.140018600
mov eax, dword [rsi]
mov edi, eax
call fcn.14004b700
cdqe
lea rcx, [0x1400637c4]
mov edx, edi
add edi, dword [rcx + rax*4]
mov dword [rsi], edi
mov eax, edx
mov edi, dword [rsi + rax*4 + 4]
call fcn.14004b780
cdqe
lea rcx, str._v_v_v_a_a_a
movzx ecx, byte [rcx + rax*4]
mov eax, edi
shr eax, cl
and eax, dword [rsi + 0x1384]
mov esi, eax
xor esi, edi
call fcn.14004b800
cdqe
lea rcx, [0x1400637dc]
movzx ecx, byte [rcx + rax*4]
mov edi, esi
shl edi, cl
call fcn.14004b890
cdqe
lea rcx, [0x1400637e8]
mov ebx, dword [rcx + rax*4]
and ebx, edi
call fcn.14004b920
cdqe
lea rcx, [0x1400637f4]
mov ebp, dword [rcx + rax*4]
and ebp, edi
call fcn.14004b9b0
cdqe
lea rcx, [0x140063800]
xor ebp, dword [rcx + rax*4]
call fcn.14004ba40
cdqe
lea rcx, [0x14006380c]
xor edi, dword [rcx + rax*4]
and edi, ebx
or edi, ebp
call fcn.14004bab0
cdqe
lea rcx, [0x140063818]
mov ebx, dword [rcx + rax*4]
xor ebx, esi
call fcn.14004bb20
cdqe
lea rcx, [0x140063824]
xor esi, dword [rcx + rax*4]
mov ebp, esi
and ebp, edi
call fcn.14004bbb0
cdqe
lea rcx, [0x140063830]
xor edi, dword [rcx + rax*4]
and edi, ebx
mov esi, edi
or esi, ebp
call fcn.14004bc20
cdqe
lea rcx, [0x14006383c]
movzx ecx, byte [rcx + rax*4]
mov edi, esi
shl edi, cl
call fcn.14004bcb0
cdqe
lea rcx, [0x140063848]
mov ebx, dword [rcx + rax*4]
and ebx, edi
call fcn.14004bd40
cdqe
lea rcx, [0x140063854]
mov ebp, dword [rcx + rax*4]
and ebp, edi
call fcn.14004bdc0
cdqe
lea rcx, [0x140063860]
xor edi, dword [rcx + rax*4]
and edi, ebx
call fcn.14004be40
cdqe
lea rcx, [0x14006386c]
xor ebp, edi
and edi, dword [rcx + rax*4]
call fcn.14004beb0
cdqe
lea rcx, [0x140063878]
xor ebp, dword [rcx + rax*4]
or ebp, edi
xor ebp, esi
call fcn.14004bf30
cdqe
lea rcx, [0x140063884]
mov edi, dword [rcx + rax*4]
xor edi, ebp
call fcn.14004bfa0
cdqe
lea rcx, [0x140063890]
movzx ecx, byte [rcx + rax*4]
mov esi, edi
shr esi, cl
call fcn.14004c020
cdqe
lea rcx, [0x14006389c]
xor ebp, dword [rcx + rax*4]
call fcn.14004c090
cdqe
lea rcx, [0x1400638a8]
mov eax, dword [rcx + rax*4]
and eax, ebp
and eax, edi
mov edi, eax
or edi, ebp
call fcn.14004c120
cdqe
lea rcx, [0x1400638b4]
mov ebx, dword [rcx + rax*4]
and ebx, esi
call fcn.14004c1a0
cdqe
lea rcx, [0x1400638c0]
mov ebp, dword [rcx + rax*4]
and ebp, esi
call fcn.14004c220
cdqe
lea rcx, [0x1400638cc]
or ebp, dword [rcx + rax*4]
xor ebp, ebx
call fcn.14004c290
cdqe
lea rcx, [0x1400638d8]
and esi, dword [rcx + rax*4]
or esi, ebp
xor esi, edi
call fcn.14004c310
movsxd rcx, eax
lea rdx, [0x1400638e4]
mov eax, esi
xor eax, dword [rdx + rcx*4]
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret