Function at 0x140058dc0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x270
movaps xmmword [rsp + 0x260], xmm6
mov rax, qword [0x1403a9200]
xor rax, rsp
mov qword [rsp + 0x250], rax
mov r12, qword [rsp + 0x2d0]
lea rcx, [rsp + 0x40]
mov ebx, r8d
mov rdi, rdx
xor edx, edx
mov r8d, 0x208
mov r15, r9
call fcn.14025ab90
mov r8d, 0x104
lea rdx, [rsp + 0x40]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov ebp, dword [rbx + rdi - 4]
lea r14d, [rbx - 4]
add rbx, 0xfffffffffffffffc
mov rcx, rbx
movd xmm6, ebp
pshufd xmm6, xmm6, 0
call fcn.14022d9e0
mov r8, rbx
xor edx, edx
mov rcx, rax
mov rsi, rax
call fcn.14025ab90
mov r8, rbx
mov rdx, rdi
mov rcx, rsi
call fcn.14025a4f0
xor ebx, ebx
mov edx, ebx
test r14d, r14d
jle 0x140058f0e
cmp r14d, 0x10
jb 0x140058f0e
mov ecx, r14d
and ecx, 0x8000000f
jge 0x140058e86
dec ecx
or ecx, 0xfffffff0
inc ecx
andps xmm6, xmmword [0x14025d000]
mov eax, r14d
sub eax, ecx
packuswb xmm6, xmm6
packuswb xmm6, xmm6
mov r8, rsi
movdqa xmmword [rsp + 0x30], xmm6
mov r9, rsi
mov ecx, dword [rsp + 0x30]
movsxd r10, eax
mov rax, rbx
movd xmm1, dword [rsi + rax]
lea r8, [r8 + 0x10]
movd xmm0, ecx
lea r9, [r9 + 0x10]
xorps xmm1, xmm0
add edx, 0x10
movd dword [rsi + rax], xmm1
movd xmm2, dword [r8 - 0xc]
movd xmm0, ecx
xorps xmm2, xmm0
movd xmm1, ecx
movd dword [r9 - 0xc], xmm2
movd xmm0, dword [rsi + rax + 8]
xorps xmm1, xmm0
movd xmm0, ecx
movd dword [rsi + rax + 8], xmm1
movd xmm1, dword [rsi + rax + 0xc]
xorps xmm1, xmm0
movd dword [rsi + rax + 0xc], xmm1
add rax, 0x10
cmp rax, r10
jl 0x140058eb0
movsxd rdx, edx
movsxd rcx, r14d
cmp rdx, rcx
jge 0x140058f2d
lea rax, [rdx + rsi]
sub rcx, rdx
xor byte [rax], bpl
lea rax, [rax + 1]
sub rcx, 1
jne 0x140058f20
mov eax, dword [rsi]
mov ecx, eax
mov dword [rsp + 0x20], eax
call fcn.14022d9e0
mov r8d, dword [rsp + 0x20]
xor edx, edx
mov rcx, rax
mov rdi, rax
call fcn.14025ab90
lea rcx, [rsi + 4]
mov r8, rdi
lea r9, [rsp + 0x20]
mov edx, r14d
call fcn.140057a80
test eax, eax
jne 0x1400590d6
movsxd rax, dword [rsp + 0x20]
mov edx, ebx
mov r8, rax
test eax, eax
jle 0x140059008
cmp r8d, 0x40
jb 0x140059008
mov ecx, r8d
and ecx, 0x8000003f
jge 0x140058f96
dec ecx
or ecx, 0xffffffc0
inc ecx
movdqa xmm2, xmmword [0x14025d010]
sub eax, ecx
movsxd r9, eax
mov rcx, rdi
mov rax, rdi
nop dword [rax]
movdqu xmm0, xmmword [rdi + rbx]
lea rax, [rax + 0x40]
add edx, 0x40
movdqa xmm1, xmm2
lea rcx, [rcx + 0x40]
xorps xmm1, xmm0
movdqu xmmword [rdi + rbx], xmm1
movdqu xmm0, xmmword [rax - 0x30]
movdqa xmm1, xmm2
xorps xmm0, xmm2
movdqu xmmword [rcx - 0x30], xmm0
movdqu xmm0, xmmword [rdi + rbx + 0x20]
xorps xmm0, xmm2
movdqu xmmword [rdi + rbx + 0x20], xmm0
movdqu xmm0, xmmword [rdi + rbx + 0x30]
xorps xmm1, xmm0
movdqu xmmword [rdi + rbx + 0x30], xmm1
add rbx, 0x40
cmp rbx, r9
jl 0x140058fb0
mov eax, dword [rsp + 0x20]
movsxd r9, edx
mov rcx, r8
cmp r9, r8
jge 0x140059031
lea rax, [r9 + rdi]
sub rcx, r9
nop word [rax + rax]
xor byte [rax], 0xd6
lea rax, [rax + 1]
sub rcx, 1
jne 0x140059020
mov eax, dword [rsp + 0x20]
test r15, r15
je 0x1400590cd
mov r8d, eax
mov rdx, rdi
mov rcx, r15
mov ebx, eax
call fcn.14025a4f0
mov dword [rbx + r15], 0x208
lea rax, [rsp + 0x40]
mov edx, dword [rsp + 0x20]
mov ecx, 4
add rdx, 4
add rdx, r15
nop word [rax + rax]
lea rdx, [rdx + 0x80]
movups xmm0, xmmword [rax]
lea rax, [rax + 0x80]
movups xmmword [rdx - 0x80], xmm0
movups xmm1, xmmword [rax - 0x70]
movups xmmword [rdx - 0x70], xmm1
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rdx - 0x60], xmm0
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rdx - 0x50], xmm1
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rdx - 0x40], xmm0
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rdx - 0x30], xmm1
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rdx - 0x20], xmm0
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rdx - 0x10], xmm1
sub rcx, 1
jne 0x140059070
mov rcx, qword [rax]
mov qword [rdx], rcx
mov eax, dword [rsp + 0x20]
add eax, 0x20c
mov dword [r12], eax
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.14022dda0
movaps xmm6, xmmword [rsp + 0x260]
add rsp, 0x270
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret