Function at 0x140420bb0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
vmovaps xmmword [rsp + 0x90], xmm6
mov rax, qword [0x14059d380]
xor rax, rsp
mov qword [rsp + 0x88], rax
mov r13d, 0xfffffff3
test byte [rcx + 0xa8], 0x10
jne 0x140421512
mov rdi, r9
mov r15, r8
mov r14, rdx
mov rsi, rcx
mov rax, qword [rsp + 0x110]
cmp qword [rcx + 0x30], 0
je 0x140420c27
cmp rax, r15
jb 0x140421512
mov rax, qword [rsi + 0x38]
add rax, r15
cmp rax, qword [rsi + 0x20]
jbe 0x140420c30
jmp 0x140421512
cmp rax, r15
jb 0x140421512
mov rax, qword [rsp + 0x118]
mov qword [rax], r15
test r15, r15
je 0x1404214d9
lea rbx, [rsi + 0x48]
lea rax, [rsi + 0x10]
mov qword [rsp + 0x38], rax
lea rax, [rsi + 0x60]
mov qword [rsp + 0x30], rax
lea rax, [rsi + 3]
mov qword [rsp + 0x48], rax
vxorps xmm6, xmm6, xmm6
mov qword [rsp + 0x28], rbx
jmp 0x140420c7f
add r14, rbp
add rdi, rbp
sub r15, rbp
je 0x1404214d9
mov rax, qword [rsi + 0x38]
mov r12d, eax
and r12d, 0xf
mov ebp, 0x10
sub rbp, r12
cmp rbp, r15
cmovae rbp, r15
add rax, rbp
mov qword [rsi + 0x38], rax
mov eax, dword [rsi + 0x44]
mov ecx, eax
or ecx, 2
cmp ecx, 3
jne 0x140420ff3
lea rcx, [rsi + r12]
cmp rbp, 7
ja 0x140420cc0
xor eax, eax
jmp 0x140420cde
mov rax, qword [r14]
xor qword [rcx], rax
mov eax, 8
cmp rbp, 0x10
jb 0x140420cde
mov rax, qword [r14 + 8]
xor qword [rcx + 8], rax
mov eax, 0x10
mov rdx, rbp
sub rdx, rax
jbe 0x140420e6f
cmp rdx, 0x10
jb 0x140420e00
lea r11, [rax + r12]
lea r8, [rsi + r11]
lea r9, [r14 + rax]
lea r10, [r14 + rbp]
cmp r8, r10
jae 0x140420d19
lea r10, [r12 + rbp]
add r10, rsi
cmp r9, r10
jb 0x140420e00
cmp rdx, 0x80
jae 0x140420d2a
xor r10d, r10d
jmp 0x140420dc1
mov rbx, r15
mov r10, rdx
and r10, 0xffffffffffffff80
add r11, qword [rsp + 0x30]
lea r13, [r14 + rax]
add r13, 0x60
xor r15d, r15d
nop word cs:[rax + rax]
vmovups ymm0, ymmword [r13 + r15 - 0x60]
vmovups ymm1, ymmword [r13 + r15 - 0x40]
vmovups ymm2, ymmword [r13 + r15 - 0x20]
vmovups ymm3, ymmword [r13 + r15]
vxorps ymm0, ymm0, ymmword [r11 + r15 - 0x60]
vxorps ymm1, ymm1, ymmword [r11 + r15 - 0x40]
vxorps ymm2, ymm2, ymmword [r11 + r15 - 0x20]
vxorps ymm3, ymm3, ymmword [r11 + r15]
vmovups ymmword [r11 + r15 - 0x60], ymm0
vmovups ymmword [r11 + r15 - 0x40], ymm1
vmovups ymmword [r11 + r15 - 0x20], ymm2
vmovups ymmword [r11 + r15], ymm3
sub r15, 0xffffffffffffff80
cmp r10, r15
jne 0x140420d50
cmp rdx, r10
mov r15, rbx
mov rbx, qword [rsp + 0x28]
je 0x140420e6f
test dl, 0x70
je 0x140420df2
mov r11, rdx
and r11, 0xfffffffffffffff0
add rax, r11
nop dword [rax + rax]
vmovups xmm0, xmmword [r9 + r10]
vxorps xmm0, xmm0, xmmword [r8 + r10]
vmovups xmmword [r8 + r10], xmm0
add r10, 0x10
cmp r11, r10
jne 0x140420dd0
cmp rdx, r11
jne 0x140420e00
jmp 0x140420e6f
add rax, r10
nop word cs:[rax + rax]
mov r8d, ebp
sub r8d, eax
mov rdx, rax
not rdx
add rdx, rbp
and r8, 3
je 0x140420e31
nop word cs:[rax + rax]
movzx r9d, byte [r14 + rax]
xor byte [rcx + rax], r9b
inc rax
dec r8
jne 0x140420e20
cmp rdx, 3
jb 0x140420e6f
mov rcx, qword [rsp + 0x48]
add rcx, r12
nop
movzx edx, byte [r14 + rax]
xor byte [rcx + rax - 3], dl
movzx edx, byte [r14 + rax + 1]
xor byte [rcx + rax - 2], dl
movzx edx, byte [r14 + rax + 2]
xor byte [rcx + rax - 1], dl
movzx edx, byte [r14 + rax + 3]
xor byte [rcx + rax], dl
add rax, 4
cmp rbp, rax
jne 0x140420e40
lea rax, [r12 + rbp]
cmp rax, 0x10
je 0x140420e83
mov rax, qword [rsi + 0x38]
cmp rax, qword [rsi + 0x20]
jne 0x140420eac
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r8d, 0x10
mov rcx, rbx
mov rdx, rsi
mov r9, rsi
vzeroupper
call fcn.140419220
test eax, eax
jne 0x1404214f9
mov qword [rsp + 0x58], 0
vmovaps xmmword [rsp + 0x70], xmm6
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r8d, 0x10
mov rcx, rbx
mov rdx, qword [rsp + 0x38]
lea r9, [rsp + 0x70]
vzeroupper
call fcn.140419220
test eax, eax
jne 0x1404214de
lea rax, [rsp + r12]
add rax, 0x70
cmp rbp, 7
ja 0x140420f00
xor edx, edx
jmp 0x140420f25
mov rcx, qword [rax]
xor rcx, qword [r14]
mov qword [rdi], rcx
mov edx, 8
cmp rbp, 0x10
jb 0x140420f25
mov rcx, qword [rax + 8]
xor rcx, qword [r14 + 8]
mov qword [rdi + 8], rcx
mov edx, 0x10
mov r8, rbp
sub r8, rdx
jbe 0x140420fde
cmp r8, 0x10
jb 0x140420f52
lea r9, [rdx + rdi]
lea r10, [rdx + r14]
mov rcx, r9
sub rcx, r10
cmp rcx, 0x80
jae 0x1404210b3
mov rcx, rdx
mov r8d, ebp
sub r8d, ecx
mov rdx, rcx
not rdx
add rdx, rbp
and r8, 3
je 0x140420f85
nop word [rax + rax]
movzx r9d, byte [rax + rcx]
xor r9b, byte [r14 + rcx]
mov byte [rdi + rcx], r9b
inc rcx
dec r8
jne 0x140420f70
cmp rdx, 3
jb 0x140420fde
lea rax, [rsp + 0x73]
add rax, r12
nop word cs:[rax + rax]
movzx edx, byte [rax + rcx - 3]
xor dl, byte [r14 + rcx]
mov byte [rdi + rcx], dl
movzx edx, byte [rax + rcx - 2]
xor dl, byte [r14 + rcx + 1]
mov byte [rdi + rcx + 1], dl
movzx edx, byte [rax + rcx - 1]
xor dl, byte [r14 + rcx + 2]
mov byte [rdi + rcx + 2], dl
movzx edx, byte [rax + rcx]
xor dl, byte [r14 + rcx + 3]
mov byte [rdi + rcx + 3], dl
add rcx, 4
cmp rbp, rcx
jne 0x140420fa0
mov edx, 0x10
lea rcx, [rsp + 0x70]
vzeroupper
call fcn.14041a6a0
mov eax, dword [rsi + 0x44]
test eax, 0xfffffffd
jne 0x140421050
mov qword [rsp + 0x58], 0
vmovaps xmmword [rsp + 0x70], xmm6
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r8d, 0x10
mov rcx, rbx
mov rdx, qword [rsp + 0x38]
lea r9, [rsp + 0x70]
call fcn.140419220
test eax, eax
jne 0x1404214de
lea rax, [rsp + r12]
add rax, 0x70
cmp rbp, 7
ja 0x140421060
xor ecx, ecx
jmp 0x140421088
add r12, rbp
jmp 0x14042148a
mov rcx, qword [rax]
xor rcx, qword [r14]
mov qword [rsp + 0x60], rcx
mov ecx, 8
cmp rbp, 0x10
jb 0x140421088
mov rcx, qword [rax + 8]
xor rcx, qword [r14 + 8]
mov qword [rsp + 0x68], rcx
mov ecx, 0x10
mov rdx, rbp
sub rdx, rcx
jbe 0x1404212e6
cmp rdx, 0x10
jae 0x1404210a2
mov r9, rcx
jmp 0x1404212d0
cmp rdx, 0x80
jae 0x1404210c8
xor r8d, r8d
jmp 0x140421171
cmp r8, 0x80
jae 0x1404211ce
xor r11d, r11d
jmp 0x140421274
mov r8, rdx
and r8, 0xffffffffffffff80
lea r9, [r14 + rcx]
add r9, 0x60
lea r10, [rcx + r12]
lea r11, [rsp + 0xd0]
add r10, r11
lea r11, [rsp + 0xc0]
add r11, rcx
xor ebx, ebx
nop word cs:[rax + rax]
vmovups ymm0, ymmword [r10 + rbx - 0x60]
vmovups ymm1, ymmword [r10 + rbx - 0x40]
vmovups ymm2, ymmword [r10 + rbx - 0x20]
vmovups ymm3, ymmword [r10 + rbx]
vxorps ymm0, ymm0, ymmword [r9 + rbx - 0x60]
vxorps ymm1, ymm1, ymmword [r9 + rbx - 0x40]
vxorps ymm2, ymm2, ymmword [r9 + rbx - 0x20]
vxorps ymm3, ymm3, ymmword [r9 + rbx]
vmovups ymmword [r11 + rbx - 0x60], ymm0
vmovups ymmword [r11 + rbx - 0x40], ymm1
vmovups ymmword [r11 + rbx - 0x20], ymm2
vmovups ymmword [r11 + rbx], ymm3
sub rbx, 0xffffffffffffff80
cmp r8, rbx
jne 0x140421100
cmp rdx, r8
mov rbx, qword [rsp + 0x28]
je 0x1404212e6
test dl, 0x70
je 0x1404212be
mov r10, rdx
and r10, 0xfffffffffffffff0
lea r9, [rcx + r10]
lea r11, [r14 + rcx]
lea rbx, [rcx + r12]
add rbx, rsp
add rbx, 0x70
add rcx, rsp
add rcx, 0x60
nop word cs:[rax + rax]
vmovups xmm0, xmmword [rbx + r8]
vxorps xmm0, xmm0, xmmword [r11 + r8]
vmovups xmmword [rcx + r8], xmm0
add r8, 0x10
cmp r10, r8
jne 0x1404211a0
cmp rdx, r10
mov rbx, qword [rsp + 0x28]
jne 0x1404212d0
jmp 0x1404212e6
mov qword [rsp + 0x40], r15
mov r11, r8
and r11, 0xffffffffffffff80
lea rcx, [r14 + rdx]
add rcx, 0x60
lea r13, [rdx + r12]
lea rbx, [rsp + 0xd0]
add r13, rbx
lea r15, [rdi + rdx]
add r15, 0x60
xor ebx, ebx
nop dword [rax + rax]
vmovups ymm0, ymmword [r13 + rbx - 0x60]
vmovups ymm1, ymmword [r13 + rbx - 0x40]
vmovups ymm2, ymmword [r13 + rbx - 0x20]
vmovups ymm3, ymmword [r13 + rbx]
vxorps ymm0, ymm0, ymmword [rcx + rbx - 0x60]
vxorps ymm1, ymm1, ymmword [rcx + rbx - 0x40]
vxorps ymm2, ymm2, ymmword [rcx + rbx - 0x20]
vxorps ymm3, ymm3, ymmword [rcx + rbx]
vmovups ymmword [r15 + rbx - 0x60], ymm0
vmovups ymmword [r15 + rbx - 0x40], ymm1
vmovups ymmword [r15 + rbx - 0x20], ymm2
vmovups ymmword [r15 + rbx], ymm3
sub rbx, 0xffffffffffffff80
cmp r11, rbx
jne 0x140421200
cmp r8, r11
mov r15, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x28]
je 0x140420fde
test r8b, 0x70
je 0x1404214d1
mov rbx, r8
and rbx, 0xfffffffffffffff0
lea rcx, [rdx + rbx]
add rdx, r12
add rdx, rsp
add rdx, 0x70
nop dword [rax]
vmovups xmm0, xmmword [rdx + r11]
vxorps xmm0, xmm0, xmmword [r10 + r11]
vmovups xmmword [r9 + r11], xmm0
add r11, 0x10
cmp rbx, r11
jne 0x140421290
cmp r8, rbx
mov rbx, qword [rsp + 0x28]
jne 0x140420f55
jmp 0x140420fde
add rcx, r8
mov r9, rcx
nop word cs:[rax + rax]
movzx ecx, byte [rax + r9]
xor cl, byte [r14 + r9]
mov byte [rsp + r9 + 0x60], cl
inc r9
cmp rbp, r9
jne 0x1404212d0
mov edx, 0x10
lea rcx, [rsp + 0x70]
vzeroupper
call fcn.14041a6a0
lea rax, [rsi + r12]
cmp rbp, 7
ja 0x140421310
xor ecx, ecx
jmp 0x140421331
mov rcx, qword [rsp + 0x60]
xor qword [rax], rcx
mov ecx, 8
cmp rbp, 0x10
jb 0x140421331
mov rcx, qword [rsp + 0x68]
xor qword [rax + 8], rcx
mov ecx, 0x10
mov rdx, rbp
sub rdx, rcx
jbe 0x140421442
cmp rdx, 0x10
jae 0x14042134b
mov r9, rcx
jmp 0x140421430
cmp rdx, 0x80
jae 0x14042135c
xor r8d, r8d
jmp 0x1404213e4
mov r8, rdx
and r8, 0xffffffffffffff80
lea r9, [rcx + r12]
add r9, qword [rsp + 0x30]
lea r10, [rsp + 0xc0]
add r10, rcx
xor r11d, r11d
nop word [rax + rax]
vmovups ymm0, ymmword [r10 + r11 - 0x60]
vmovups ymm1, ymmword [r10 + r11 - 0x40]
vmovups ymm2, ymmword [r10 + r11 - 0x20]
vmovups ymm3, ymmword [r10 + r11]
vxorps ymm0, ymm0, ymmword [r9 + r11 - 0x60]
vxorps ymm1, ymm1, ymmword [r9 + r11 - 0x40]
vxorps ymm2, ymm2, ymmword [r9 + r11 - 0x20]
vxorps ymm3, ymm3, ymmword [r9 + r11]
vmovups ymmword [r9 + r11 - 0x60], ymm0
vmovups ymmword [r9 + r11 - 0x40], ymm1
vmovups ymmword [r9 + r11 - 0x20], ymm2
vmovups ymmword [r9 + r11], ymm3
sub r11, 0xffffffffffffff80
cmp r8, r11
jne 0x140421380
cmp rdx, r8
je 0x140421442
test dl, 0x70
je 0x140421422
mov r10, rdx
and r10, 0xfffffffffffffff0
lea r9, [rcx + r10]
lea r11, [rcx + r12]
add r11, rsi
add rcx, rsp
add rcx, 0x60
nop dword [rax]
vmovups xmm0, xmmword [rcx + r8]
vxorps xmm0, xmm0, xmmword [r11 + r8]
vmovups xmmword [r11 + r8], xmm0
add r8, 0x10
cmp r10, r8
jne 0x140421400
cmp rdx, r10
jne 0x140421430
jmp 0x140421442
add rcx, r8
mov r9, rcx
nop dword [rax + rax]
movzx ecx, byte [rsp + r9 + 0x60]
xor byte [rax + r9], cl
inc r9
cmp rbp, r9
jne 0x140421430
mov rcx, rdi
lea rdx, [rsp + 0x60]
mov r8, rbp
vzeroupper
call fcn.1404513d0
add r12, rbp
cmp r12, 0x10
je 0x140421468
mov rax, qword [rsi + 0x38]
cmp rax, qword [rsi + 0x20]
jne 0x140421490
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r8d, 0x10
mov rcx, rbx
mov rdx, rsi
mov r9, rsi
call fcn.140419220
test eax, eax
jne 0x1404214f9
cmp r12, 0x10
je 0x14042149e
mov rax, qword [rsi + 0x38]
cmp rax, qword [rsi + 0x20]
jne 0x140420c70
cmp dword [rsi + 0x40], 0
je 0x140420c70
xor eax, eax
nop word [rax + rax]
movsxd rcx, eax
mov rdx, rsi
sub rdx, rcx
inc byte [rdx + 0x1f]
jne 0x140420c70
inc eax
movzx eax, al
cmp dword [rsi + 0x40], eax
ja 0x1404214b0
jmp 0x140420c70
add rdx, r11
jmp 0x140420f52
xor r13d, r13d
jmp 0x140421503
mov r13d, eax
or byte [rsi + 0xa8], 0x10
lea rcx, [rsp + 0x70]
mov edx, 0x10
call fcn.14041a6a0
jmp 0x140421503
mov r13d, eax
or byte [rsi + 0xa8], 0x10
lea rcx, [rsp + 0x60]
mov edx, 0x10
call fcn.14041a6a0
mov rcx, qword [rsp + 0x88]
xor rcx, rsp
call fcn.140428330
mov eax, r13d
vmovaps xmm6, xmmword [rsp + 0x90]
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret