Function at 0x140009890
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
xorps xmm0, xmm0
movups xmmword [0x14004db58], xmm0
movups xmmword [0x14004db48], xmm0
mov qword [0x14004db68], 0
lea rdx, [0x14004db48]
mov rcx, qword [0x14004db30]
call qword [sym.imp.KERNEL32.dll_HeapWalk]
test eax, eax
je 0x140009bfa
lea r13, [0x14004db48]
mov r12, qword [sym.imp.KERNEL32.dll_HeapWalk]
lea r15, [0x14004b488]
jmp 0x140009915
mov rsi, r14
mov qword [0x14004b488], r14
nop dword [rax]
mov rcx, qword [0x14004db30]
mov rdx, r13
call r12
test eax, eax
je 0x140009bfa
test byte [0x14004db56], 4
je 0x140009900
mov r8d, dword [0x140042004]
mov r9d, dword [0x14004b480]
lea r14d, [r8 + r9]
add r14d, 0xfffffffa
mov ebp, dword [0x14004db50]
mov rbx, qword [0x14004db48]
mov qword [0x14004b488], r14
test ebp, ebp
jle 0x140009900
lea rax, [rbx + rbp]
dec rax
cmp rax, r15
jb 0x1400099bd
lea rax, [0x14004b48f]
cmp rbx, rax
ja 0x1400099bd
lea ecx, [r9 + r8]
add ecx, 0xfa
xor edi, edi
mov rax, qword [0x14004b488]
imul rdx, rax, 0x343fd
add rdx, 0x269ec3
movzx esi, byte [rbx + rdi]
mov qword [0x14004b488], rdx
imul eax, eax, 0x343fd
add eax, 0x269ec3
shr eax, 0x10
and eax, 0x7fff
xor edx, edx
idiv ebp
inc edx
xor edx, esi
xor edx, ecx
mov byte [rbx + rdi], dl
inc rdi
cmp rbp, rdi
jne 0x140009970
jmp 0x140009900
cmp ebp, 8
jb 0x140009b93
mov r10, rbp
shr r10, 3
lea r11d, [r9 + r8]
add r11d, 0xfffffffa
xor edi, edi
nop word [rax + rax]
imul rcx, r14, 0x343fd
add rcx, 0x269ec3
imul eax, r14d, 0x343fd
add eax, 0x269ec3
shr eax, 0x10
and eax, 0x7fff
xor edx, edx
idiv ebp
inc edx
movzx eax, byte [rbx + rdi*8]
xor eax, edx
xor eax, r11d
mov byte [rbx + rdi*8], al
imul rsi, rcx, 0x343fd
add rsi, 0x269ec3
imul eax, ecx, 0x343fd
add eax, 0x269ec3
shr eax, 0x10
and eax, 0x7fff
xor edx, edx
idiv ebp
inc edx
movzx eax, byte [rbx + rdi*8 + 1]
xor eax, edx
xor eax, r11d
mov byte [rbx + rdi*8 + 1], al
imul rcx, rsi, 0x343fd
add rcx, 0x269ec3
imul eax, esi, 0x343fd
add eax, 0x269ec3
shr eax, 0x10
and eax, 0x7fff
xor edx, edx
idiv ebp
inc edx
movzx eax, byte [rbx + rdi*8 + 2]
xor eax, edx
xor eax, r11d
mov byte [rbx + rdi*8 + 2], al
imul rsi, rcx, 0x343fd
add rsi, 0x269ec3
imul eax, ecx, 0x343fd
add eax, 0x269ec3
shr eax, 0x10
and eax, 0x7fff
xor edx, edx
idiv ebp
inc edx
movzx eax, byte [rbx + rdi*8 + 3]
xor eax, edx
xor eax, r11d
mov byte [rbx + rdi*8 + 3], al
imul rcx, rsi, 0x343fd
add rcx, 0x269ec3
imul eax, esi, 0x343fd
add eax, 0x269ec3
shr eax, 0x10
and eax, 0x7fff
xor edx, edx
idiv ebp
inc edx
movzx eax, byte [rbx + rdi*8 + 4]
xor eax, edx
xor eax, r11d
mov byte [rbx + rdi*8 + 4], al
imul rsi, rcx, 0x343fd
add rsi, 0x269ec3
imul eax, ecx, 0x343fd
add eax, 0x269ec3
shr eax, 0x10
and eax, 0x7fff
xor edx, edx
idiv ebp
inc edx
movzx eax, byte [rbx + rdi*8 + 5]
xor eax, edx
xor eax, r11d
mov byte [rbx + rdi*8 + 5], al
imul rcx, rsi, 0x343fd
add rcx, 0x269ec3
imul eax, esi, 0x343fd
add eax, 0x269ec3
shr eax, 0x10
and eax, 0x7fff
xor edx, edx
idiv ebp
inc edx
movzx eax, byte [rbx + rdi*8 + 6]
xor eax, edx
xor eax, r11d
mov byte [rbx + rdi*8 + 6], al
imul r14, rcx, 0x343fd
add r14, 0x269ec3
imul eax, ecx, 0x343fd
add eax, 0x269ec3
shr eax, 0x10
and eax, 0x7fff
xor edx, edx
idiv ebp
inc edx
movzx eax, byte [rbx + rdi*8 + 7]
xor eax, edx
xor eax, r11d
mov byte [rbx + rdi*8 + 7], al
inc rdi
cmp r10, rdi
jne 0x1400099e0
mov ecx, ebp
and ecx, 0xfffffff8
cmp rcx, rbp
jae 0x1400098ef
lea edi, [r9 + r8]
add edi, 0xfa
nop dword [rax + rax]
imul rsi, r14, 0x343fd
add rsi, 0x269ec3
imul eax, r14d, 0x343fd
add eax, 0x269ec3
shr eax, 0x10
and eax, 0x7fff
xor edx, edx
idiv ebp
inc edx
movzx eax, byte [rbx + rcx]
xor eax, edx
xor eax, edi
mov byte [rbx + rcx], al
inc rcx
mov r14, rsi
cmp rbp, rcx
jne 0x140009bb0
mov qword [0x14004b488], rsi
jmp 0x140009900
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret