Function at 0x1400f3720
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov r14, r8
mov rsi, rcx
test r8, r8
je 0x1400f37f4
cmp byte [rdx], 0
je 0x1400f381a
mov qword [rsp + 0x48], r9
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0x40], rax
mov r15, qword [rsp + 0xf0]
mov r13, qword [rsp + 0xe8]
mov rbp, qword [rsp + 0xe0]
lea rbx, [r14 + 7]
mov edi, 8
cmp rbx, 8
jb 0x1400f37b3
test rbx, rbx
js 0x1400f3c5c
mov r12, rdx
movabs rdx, 0x7ffffffffffffff8
and rdx, rbx
mov ecx, 8
call fcn.140146820
test rax, rax
je 0x1400f3c5c
mov rdi, rax
mov rdx, r12
shr rbx, 3
mov rcx, rdx
mov rdx, r14
mov r8, rdi
mov r9, rbx
call fcn.1400f7560
test al, al
je 0x1400f382c
lea r15, [0x141a77294]
test rbx, rbx
je 0x1400f380f
mov rcx, qword [0x141af8068]
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapFree
mov r14d, 0xf
jmp 0x1400f38b0
mov r8d, 8
mov rcx, rdx
mov rdx, r14
xor r9d, r9d
call fcn.1400f7560
lea r15, [0x141a77294]
mov r14d, 0xf
jmp 0x1400f38b0
lea r15, [0x141a772a3]
mov r14d, 0xf
jmp 0x1400f38b0
cmp rbx, 0x80
jbe 0x1400f3844
mov r14d, 8
lea r15, [0x141a772c2]
jmp 0x1400f389f
cmp rbx, 4
jae 0x1400f385e
lea r15, [0x141a77294]
test rbx, rbx
je 0x1400f380f
mov r14d, 0xf
jmp 0x1400f389f
mov rcx, rdi
mov rdx, rbx
call fcn.1401fbca0
test rax, rax
je 0x1400f387d
mov r14d, 0x10
lea r15, [0x141a772b2]
jmp 0x1400f389f
mov edx, 3
mov rcx, rdi
mov r8, rbx
call fcn.1401fbe40
test rax, rax
je 0x1400f38d0
mov r14d, 0xf
lea r15, [0x141a77294]
mov rcx, qword [0x141af8068]
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapFree
mov qword [rsi + 8], r15
mov qword [rsi + 0x10], r14
mov qword [rsi], 0
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rdi]
call fcn.1401ffbc0
mov r14, rax
mov rcx, rdi
mov rdx, rbx
call fcn.1400f72f0
cmp r13, 0x3ff
jbe 0x1400f3c5c
mov r12, rax
shr eax, 2
mov ecx, r12d
shr ecx, 1
or ecx, eax
or ecx, r12d
and ecx, 1
lea rax, [r12 + rcx*8]
and rax, 0xfffffffffffffff8
cmp rax, r13
jae 0x1400f391c
lea r15, [0x141a772da]
jmp 0x1400f3928
cmp r12, r15
jbe 0x1400f3944
lea r15, [0x141a772c2]
mov rcx, qword [0x141af8068]
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapFree
mov r14d, 8
jmp 0x1400f38b0
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x70], r12
lea rdx, [rbx*8]
mov ecx, 8
call fcn.140146820
test rax, rax
je 0x1400f3c5c
mov r15, rax
mov r13, rbx
shl r13, 6
xor eax, eax
cmp rbx, 4
jb 0x1400f39db
mov rcx, r15
sub rcx, rdi
cmp rcx, 0x20
jb 0x1400f39db
movabs rax, 0xffffffffffffffc
and rax, rbx
xor ecx, ecx
pcmpeqd xmm0, xmm0
movdqu xmm1, xmmword [rdi + rcx*8]
movdqu xmm2, xmmword [rdi + rcx*8 + 0x10]
pxor xmm1, xmm0
pxor xmm2, xmm0
movdqu xmmword [r15 + rcx*8], xmm1
movdqu xmmword [r15 + rcx*8 + 0x10], xmm2
add rcx, 4
cmp rax, rcx
jne 0x1400f39ad
cmp rbx, rax
je 0x1400f3a48
mov rdx, rbx
mov rcx, rax
and rdx, 3
je 0x1400f3a01
mov r8, rax
lea rcx, [r8 + 1]
mov r9, qword [rdi + r8*8]
not r9
mov qword [r15 + r8*8], r9
mov r8, rcx
dec rdx
jne 0x1400f39ea
sub rax, rbx
cmp rax, 0xfffffffffffffffc
ja 0x1400f3a48
mov rax, qword [rdi + rcx*8]
not rax
mov qword [r15 + rcx*8], rax
mov rax, qword [rdi + rcx*8 + 8]
not rax
mov qword [r15 + rcx*8 + 8], rax
mov rax, qword [rdi + rcx*8 + 0x10]
not rax
mov qword [r15 + rcx*8 + 0x10], rax
mov rax, qword [rdi + rcx*8 + 0x18]
not rax
mov qword [r15 + rcx*8 + 0x18], rax
lea rax, [rcx + 4]
mov rcx, rax
cmp rbx, rax
jne 0x1400f3a0a
or byte [r15], 1
mov qword [rsp + 0x38], r12
sub r13, r12
je 0x1400f3a87
mov rax, qword [r15 + rbx*8 - 8]
mov ecx, r13d
shl rax, cl
shr rax, cl
mov qword [r15 + rbx*8 - 8], rax
cmp r13, 1
adc r13, 0
mov rcx, r15
mov rdx, r15
mov r8, rdi
mov r9, rbx
call fcn.1401fc030
dec r13
jne 0x1400f3a71
lea r13, [rsp + 0x60]
mov r12, rbx
mov rcx, r15
mov rdx, r15
mov r8, rdi
mov r9, rbx
call fcn.1401fc030
dec r12
jne 0x1400f3a8f
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r13
mov rcx, r15
mov rdx, r15
mov r8, r15
mov r9, rdi
call fcn.1401cb900
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r13
mov rcx, r15
mov rdx, r15
mov r8, r15
mov r9, rdi
call fcn.1401cb900
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r13
mov rcx, r15
mov rdx, r15
mov r8, r15
mov r9, rdi
call fcn.1401cb900
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r13
mov rcx, r15
mov rdx, r15
mov r8, r15
mov r9, rdi
call fcn.1401cb900
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r13
mov rcx, r15
mov rdx, r15
mov r8, r15
mov r9, rdi
call fcn.1401cb900
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r13
mov rcx, r15
mov rdx, r15
mov r8, r15
mov r9, rdi
call fcn.1401cb900
test rdi, rdi
je 0x1400f3bcb
lea rcx, [0x141a772c2]
mov eax, 8
cmp rbp, 5
ja 0x1400f3be9
mov r11, rbp
test rbp, rbp
mov rbp, qword [rsp + 0x48]
je 0x1400f3b75
cmp byte [rbp], 0
je 0x1400f3bdd
xor r10d, r10d
lea r9, [0x141a772a3]
xor edx, edx
test r11, r11
je 0x1400f3bd3
movzx r8d, byte [rbp + r10]
inc r10
shl rdx, 8
or rdx, r8
cmp r11, r10
jne 0x1400f3b81
lea r9, [0x141a772da]
test rdx, rdx
je 0x1400f3bd8
cmp rdx, qword [rsp + 0x40]
jb 0x1400f3bd8
mov r9, rdx
shr r9, 0x21
jne 0x1400f3be9
test r8b, 1
jne 0x1400f3c2f
lea rcx, [0x141a772b2]
mov eax, 0x10
jmp 0x1400f3be9
mov r15, rbx
jmp 0x1400f38b0
mov eax, 0xf
mov rcx, r9
jmp 0x1400f3be9
lea rcx, [0x141a772a3]
mov eax, 0xf
mov qword [rsi + 8], rcx
mov qword [rsi + 0x10], rax
mov qword [rsi], 0
test rbx, rbx
je 0x1400f3c0e
mov rcx, qword [0x141af8068]
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapFree
mov rcx, qword [0x141af8068]
xor edx, edx
mov r8, r15
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp sub.KERNEL32.dll_HeapFree
mov qword [rsi + 0x18], 0
mov rax, qword [rsp + 0x38]
mov qword [rsi + 0x20], rax
mov qword [rsi], rdi
mov qword [rsi + 8], rbx
mov qword [rsi + 0x10], r14
mov qword [rsi + 0x28], r15
mov qword [rsi + 0x30], rbx
mov qword [rsi + 0x38], rdx
jmp 0x1400f38bf
ud2