Function at 0x14042ba50
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 [0x1405bc180]
xor rax, rsp
mov qword [rsp + 0x88], rax
mov r13d, 0xfffffff3
test byte [rcx + 0xa8], 0x10
jne 0x14042c3b2
mov rdi, r9
mov r15, r8
mov r14, rdx
mov rsi, rcx
mov rax, qword [rsp + 0x110]
cmp qword [rcx + 0x30], 0
je 0x14042bac7
cmp rax, r15
jb 0x14042c3b2
mov rax, qword [rsi + 0x38]
add rax, r15
cmp rax, qword [rsi + 0x20]
jbe 0x14042bad0
jmp 0x14042c3b2
cmp rax, r15
jb 0x14042c3b2
mov rax, qword [rsp + 0x118]
mov qword [rax], r15
test r15, r15
je 0x14042c379
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 0x14042bb1f
add r14, rbp
add rdi, rbp
sub r15, rbp
je 0x14042c379
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 0x14042be93
lea rcx, [rsi + r12]
cmp rbp, 7
ja 0x14042bb60
xor eax, eax
jmp 0x14042bb7e
mov rax, qword [r14]
xor qword [rcx], rax
mov eax, 8
cmp rbp, 0x10
jb 0x14042bb7e
mov rax, qword [r14 + 8]
xor qword [rcx + 8], rax
mov eax, 0x10
mov rdx, rbp
sub rdx, rax
jbe 0x14042bd0f
cmp rdx, 0x10
jb 0x14042bca0
lea r11, [rax + r12]
lea r8, [rsi + r11]
lea r9, [r14 + rax]
lea r10, [r14 + rbp]
cmp r8, r10
jae 0x14042bbb9
lea r10, [r12 + rbp]
add r10, rsi
cmp r9, r10
jb 0x14042bca0
cmp rdx, 0x80
jae 0x14042bbca
xor r10d, r10d
jmp 0x14042bc61
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 0x14042bbf0
cmp rdx, r10
mov r15, rbx
mov rbx, qword [rsp + 0x28]
je 0x14042bd0f
test dl, 0x70
je 0x14042bc92
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 0x14042bc70
cmp rdx, r11
jne 0x14042bca0
jmp 0x14042bd0f
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 0x14042bcd1
nop word cs:[rax + rax]
movzx r9d, byte [r14 + rax]
xor byte [rcx + rax], r9b
inc rax
dec r8
jne 0x14042bcc0
cmp rdx, 3
jb 0x14042bd0f
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 0x14042bce0
lea rax, [r12 + rbp]
cmp rax, 0x10
je 0x14042bd23
mov rax, qword [rsi + 0x38]
cmp rax, qword [rsi + 0x20]
jne 0x14042bd4c
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r8d, 0x10
mov rcx, rbx
mov rdx, rsi
mov r9, rsi
vzeroupper
call fcn.1404230f0
test eax, eax
jne 0x14042c399
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.1404230f0
test eax, eax
jne 0x14042c37e
lea rax, [rsp + r12]
add rax, 0x70
cmp rbp, 7
ja 0x14042bda0
xor edx, edx
jmp 0x14042bdc5
mov rcx, qword [rax]
xor rcx, qword [r14]
mov qword [rdi], rcx
mov edx, 8
cmp rbp, 0x10
jb 0x14042bdc5
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 0x14042be7e
cmp r8, 0x10
jb 0x14042bdf2
lea r9, [rdx + rdi]
lea r10, [rdx + r14]
mov rcx, r9
sub rcx, r10
cmp rcx, 0x80
jae 0x14042bf53
mov rcx, rdx
mov r8d, ebp
sub r8d, ecx
mov rdx, rcx
not rdx
add rdx, rbp
and r8, 3
je 0x14042be25
nop word [rax + rax]
movzx r9d, byte [rax + rcx]
xor r9b, byte [r14 + rcx]
mov byte [rdi + rcx], r9b
inc rcx
dec r8
jne 0x14042be10
cmp rdx, 3
jb 0x14042be7e
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 0x14042be40
mov edx, 0x10
lea rcx, [rsp + 0x70]
vzeroupper
call fcn.140424570
mov eax, dword [rsi + 0x44]
test eax, 0xfffffffd
jne 0x14042bef0
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.1404230f0
test eax, eax
jne 0x14042c37e
lea rax, [rsp + r12]
add rax, 0x70
cmp rbp, 7
ja 0x14042bf00
xor ecx, ecx
jmp 0x14042bf28
add r12, rbp
jmp 0x14042c32a
mov rcx, qword [rax]
xor rcx, qword [r14]
mov qword [rsp + 0x60], rcx
mov ecx, 8
cmp rbp, 0x10
jb 0x14042bf28
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 0x14042c186
cmp rdx, 0x10
jae 0x14042bf42
mov r9, rcx
jmp 0x14042c170
cmp rdx, 0x80
jae 0x14042bf68
xor r8d, r8d
jmp 0x14042c011
cmp r8, 0x80
jae 0x14042c06e
xor r11d, r11d
jmp 0x14042c114
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 0x14042bfa0
cmp rdx, r8
mov rbx, qword [rsp + 0x28]
je 0x14042c186
test dl, 0x70
je 0x14042c15e
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 0x14042c040
cmp rdx, r10
mov rbx, qword [rsp + 0x28]
jne 0x14042c170
jmp 0x14042c186
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 0x14042c0a0
cmp r8, r11
mov r15, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x28]
je 0x14042be7e
test r8b, 0x70
je 0x14042c371
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 0x14042c130
cmp r8, rbx
mov rbx, qword [rsp + 0x28]
jne 0x14042bdf5
jmp 0x14042be7e
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 0x14042c170
mov edx, 0x10
lea rcx, [rsp + 0x70]
vzeroupper
call fcn.140424570
lea rax, [rsi + r12]
cmp rbp, 7
ja 0x14042c1b0
xor ecx, ecx
jmp 0x14042c1d1
mov rcx, qword [rsp + 0x60]
xor qword [rax], rcx
mov ecx, 8
cmp rbp, 0x10
jb 0x14042c1d1
mov rcx, qword [rsp + 0x68]
xor qword [rax + 8], rcx
mov ecx, 0x10
mov rdx, rbp
sub rdx, rcx
jbe 0x14042c2e2
cmp rdx, 0x10
jae 0x14042c1eb
mov r9, rcx
jmp 0x14042c2d0
cmp rdx, 0x80
jae 0x14042c1fc
xor r8d, r8d
jmp 0x14042c284
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 0x14042c220
cmp rdx, r8
je 0x14042c2e2
test dl, 0x70
je 0x14042c2c2
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 0x14042c2a0
cmp rdx, r10
jne 0x14042c2d0
jmp 0x14042c2e2
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 0x14042c2d0
mov rcx, rdi
lea rdx, [rsp + 0x60]
mov r8, rbp
vzeroupper
call fcn.140464e80
add r12, rbp
cmp r12, 0x10
je 0x14042c308
mov rax, qword [rsi + 0x38]
cmp rax, qword [rsi + 0x20]
jne 0x14042c330
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r8d, 0x10
mov rcx, rbx
mov rdx, rsi
mov r9, rsi
call fcn.1404230f0
test eax, eax
jne 0x14042c399
cmp r12, 0x10
je 0x14042c33e
mov rax, qword [rsi + 0x38]
cmp rax, qword [rsi + 0x20]
jne 0x14042bb10
cmp dword [rsi + 0x40], 0
je 0x14042bb10
xor eax, eax
nop word [rax + rax]
movsxd rcx, eax
mov rdx, rsi
sub rdx, rcx
inc byte [rdx + 0x1f]
jne 0x14042bb10
inc eax
movzx eax, al
cmp dword [rsi + 0x40], eax
ja 0x14042c350
jmp 0x14042bb10
add rdx, r11
jmp 0x14042bdf2
xor r13d, r13d
jmp 0x14042c3a3
mov r13d, eax
or byte [rsi + 0xa8], 0x10
lea rcx, [rsp + 0x70]
mov edx, 0x10
call fcn.140424570
jmp 0x14042c3a3
mov r13d, eax
or byte [rsi + 0xa8], 0x10
lea rcx, [rsp + 0x60]
mov edx, 0x10
call fcn.140424570
mov rcx, qword [rsp + 0x88]
xor rcx, rsp
call fcn.140439e00
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