Function at 0x1404213e0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x50]
mov qword [rbp], 0xfffffffffffffffe
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
mov eax, dword [0x1405d5728]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x140421431
nop word [rax + rax]
mov eax, dword [0x1404b8808]
mov eax, dword [0x1405d572c]
cmp eax, 0x42
jge 0x140421420
lea r15, [rdi + 1]
lea rax, [0x1404b8808]
movsxd r12, dword [0x1404b8808]
add r12, rax
mov eax, dword [0x1405d572c]
cmp eax, 0x57
jge 0x140421463
mov r13d, dword [0x1404b87f0]
mov eax, dword [0x1405d572c]
cmp eax, 0x26
jl 0x1404214be
lea r14, [0x140421ad0]
mov r13d, 0xcbafeedc
mov ecx, 0x2c
mov edx, 0xbcff18e0
mov r8d, 0xc8c46847
mov r9d, 0xc37c7d18
call fcn.140113070
mov qword [0x1405d5718], rax
mov rcx, r14
call fcn.140444ec0
mov eax, dword [0x1404b87f0]
mov eax, dword [0x1405d5728]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x1405c2c3c]
add eax, r13d
cmp ecx, eax
jne 0x140421470
jmp 0x140421451
pxor xmm0, xmm0
movdqa xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x10], 0
test r15, r15
je 0x140421525
js 0x1404219c2
cmp r15, 0x1000
mov qword [rbp - 8], rdi
jb 0x140421558
lea rcx, [rdi + 0x28]
mov edx, 0xf930aa57
mov r8d, 0xbcff18e0
mov r9d, 0x419faf38
call fcn.1400aaaf0
lea r14, [rax + 0x27]
mov rcx, r14
not rcx
mov rdx, r14
xor rdx, 0xffffffffffffffe0
xor r14, 0x1f
and r14, rcx
or r14, rdx
not r14
mov qword [r14 - 8], rax
jmp 0x140421574
mov r14, qword [rbp - 0x20]
test rbx, rbx
setne al
sete cl
test r14, r14
sete dl
setne r8b
and r8b, cl
and dl, al
or dl, r8b
mov rax, rbx
or rax, r14
sete al
or al, dl
cmp al, 1
jne 0x1404215be
jmp 0x140421866
mov rcx, r15
mov edx, 0xf930aa57
mov r8d, 0xbcff18e0
mov r9d, 0x419faf38
call fcn.1400aaaf0
mov r14, rax
mov qword [rbp - 0x20], r14
lea rdi, [r14 + r15]
mov qword [rbp - 0x10], rdi
mov rcx, r14
xor edx, edx
mov r8, r15
call fcn.14046ceb0
mov qword [rbp - 0x18], rdi
test rbx, rbx
sete al
setne cl
test r14, r14
sete dl
xor cl, dl
not cl
and cl, al
or cl, dl
cmp cl, 1
mov rdi, qword [rbp - 8]
je 0x140421866
test rdi, rdi
je 0x140421861
movabs rax, 0x54d1da66781db38a
add rax, qword [0x1405c2c30]
xor ecx, ecx
cmp rdi, rax
jb 0x140421648
mov rax, r14
sub rax, rbx
cmp rax, 0x20
jb 0x140421648
cmp rdi, 0x20
jae 0x140421713
xor ecx, ecx
mov rax, rcx
mov rcx, rdi
and rcx, 0xfffffffffffffff8
lea rdx, [rcx - 8]
movdqa xmm0, xmmword [0x1404b87b0]
movdqa xmm1, xmmword [0x1404b87c0]
nop dword [rax]
movq xmm2, qword [rbx + rax]
movdqa xmm3, xmm2
pandn xmm3, xmm0
pand xmm2, xmm1
por xmm2, xmm3
movq qword [r14 + rax], xmm2
cmp byte [0x1405d0831], 0
jne 0x14042163f
cmp rdx, rax
je 0x14042163f
add rax, 8
jmp 0x140421610
cmp rcx, rdi
je 0x140421861
mov rax, rcx
not rax
add rax, rdi
mov rdx, rdi
and rdx, 3
je 0x140421695
inc rcx
xor r8d, r8d
movzx r9d, byte [rbx + rcx - 1]
xor r9b, 0x67
mov byte [r14 + rcx - 1], r9b
mov r9d, r8d
not r9d
and r9d, 1
mov r10, r8
and r10, 0xfffffffffffffffe
or r10, r9
and r8d, 1
lea r8, [r10 + r8*2]
cmp r8, rdx
je 0x140421695
inc rcx
jmp 0x140421660
cmp rax, 3
jb 0x140421861
lea rax, [rdi - 4]
nop word cs:[rax + rax]
movzx edx, byte [rbx + rcx]
xor dl, 0x67
mov byte [r14 + rcx], dl
movzx edx, byte [rbx + rcx + 1]
movzx r8d, byte [0x1405c2c38]
add r8b, 0xb1
mov r9d, r8d
xor r9b, r8b
not r9b
and r9b, dl
xor r9b, r8b
and r9b, 0x67
and dl, 0x98
or dl, r9b
mov byte [r14 + rcx + 1], dl
movzx edx, byte [rbx + rcx + 2]
xor dl, 0x67
mov byte [r14 + rcx + 2], dl
movzx edx, byte [rbx + rcx + 3]
xor dl, 0x67
mov byte [r14 + rcx + 3], dl
cmp rax, rcx
je 0x140421861
add rcx, 4
jmp 0x1404216b0
mov qword [rbp - 0x28], rsi
mov qword [rbp - 8], rdi
mov rcx, rdi
and rcx, 0xffffffffffffffe0
xor r8d, r8d
pcmpeqd xmm0, xmm0
movdqa xmm1, xmmword [0x1404b87d0]
movdqa xmm2, xmmword [0x1404b87e0]
mov r10d, 0xcbafeede
mov r11d, 0xcbafeedc
xor r15d, r15d
jmp 0x14042177c
xor edx, edx
movdqa xmm5, xmm3
pandn xmm5, xmm2
pand xmm3, xmm1
por xmm3, xmm5
movdqu xmmword [r14 + r15], xmm4
movdqu xmmword [r14 + r15 + 0x10], xmm3
add r15, 0x20
cmp r15, rcx
je 0x140421850
movdqu xmm5, xmmword [rbx + r15]
movdqu xmm3, xmmword [rbx + r15 + 0x10]
movdqa xmm4, xmm5
pxor xmm4, xmm2
pand xmm4, xmm5
por xmm5, xmm1
pxor xmm5, xmm0
por xmm4, xmm5
mov eax, dword [0x1405d572c]
nop word [rax + rax]
mov r9d, dword [0x1405c2ad0]
mov edx, dword [0x1405d5728]
lea eax, [rdx - 1]
imul eax, edx
mov edi, dword [0x1405c2c3c]
add edi, r10d
xor edx, edx
div edi
test edx, edx
jne 0x1404217b0
lea eax, [r9 + 1]
mov dword [0x1405c2ad0], eax
mov edx, r9d
not edx
xor r9d, eax
not eax
and eax, edx
or eax, r9d
not eax
mov r9d, dword [0x1405c2c3c]
add r9d, r11d
cmp eax, r9d
jne 0x140421750
mov edx, dword [0x1405d572c]
nop dword [rax + rax]
test r8b, r8b
jne 0x140421810
xor edi, edi
mov edx, 0
test r13d, r13d
jle 0x140421752
xor edx, edx
nop word [rax + rax]
movsxd rdi, edi
xor dx, word [r12 + rdi]
mov esi, dword [0x1405c2c3c]
add edi, esi
add edi, 0xcbafeede
cmp edi, r13d
jl 0x140421830
jmp 0x140421752
mov rdi, qword [rbp - 8]
cmp rcx, rdi
jne 0x14042191d
mov rsi, qword [rbp - 0x28]
mov byte [r14 + rdi], 0
movsxd r8, edi
mov rdx, qword [rbp - 0x20]
lea rax, [rsi + 8]
mov qword [rbp - 8], rax
mov qword [rsi + 0x18], 0
mov qword [rsi + 0x20], 0xf
mov byte [rsi + 8], 0
lea rax, [0x140489448]
mov qword [rsi], rax
mov rcx, rsi
call fcn.14027aae0
mov rcx, qword [rbp - 0x20]
test rcx, rcx
je 0x140421909
mov rdx, qword [rbp - 0x10]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x1404218f0
mov rax, qword [rcx - 8]
add rcx, qword [0x1405c2c30]
sub rcx, rax
movabs r8, 0x54d1da66781db37a
add r8, rcx
cmp r8, 0x20
jae 0x1404219c7
add rdx, qword [0x1405c2c30]
movabs rcx, 0x54d1da66781db3a9
add rdx, rcx
mov rcx, rax
mov dword [rsp + 0x20], 0xd7f55f95
mov r8d, 0x4d7c47d
mov r9d, 0x74a06eb4
call fcn.1400a8fb0
mov rax, rsi
add rsp, 0x58
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov r8, rdi
xor r8, 0xffffffffffffffe7
movzx r10d, byte [0x1405d08b9]
mov r13d, 0xcbafef11
nop word cs:[rax + rax]
mov r11d, dword [0x1405d5728]
lea esi, [r11 - 1]
imul esi, r11d
test sil, 1
jne 0x14042198d
xor esi, esi
cmp eax, r9d
setne sil
movzx r11d, word [0x1404b87f4]
sub r11d, edx
dec esi
and r11w, si
setne r15b
movzx r12d, byte [0x1405d08b9]
mov esi, dword [0x1405d5728]
lea edi, [rsi - 1]
imul edi, esi
test dil, 1
je 0x1404219ac
movzx r11d, word [0x1404b87f4]
mov r11d, dword [0x1405d572c]
mov esi, dword [0x1405c2c3c]
add esi, r13d
cmp r11d, esi
jge 0x140421940
jmp 0x140421955
and r15b, r12b
mov eax, dword [0x1405d5728]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x140421a00
jmp 0x1404219cc
call fcn.14027beb0
call fcn.140424a4c
test r11w, r11w
sete al
setne dl
xor al, dl
and al, r12b
xor dl, r15b
xor dl, al
mov byte [0x1405d08b9], dl
cmp dword [0x1405c2c3c], 0x34501124
je 0x140421a2c
nop word cs:[rax + rax]
test r11w, r11w
setne dl
mov eax, r12d
sub al, dl
mul dl
xor al, r12b
lea edx, [r15 + rax]
mul dl
and al, 1
mov byte [0x1405d08b9], al
mov eax, dword [0x1405d572c]
cmp eax, 0x54
jge 0x140421a00
jmp 0x1404219cc
test r8b, 0x18
setne al
sete dl
test r10b, dl
mov rsi, qword [rbp - 0x28]
jne 0x140421a60
mov r8d, r10d
not r8b
and r8b, dl
mov rdi, qword [rbp - 8]
jne 0x140421648
and r10b, al
je 0x1404215ee
jmp 0x140421648
mov rdi, qword [rbp - 8]
jmp 0x140421648