Function at 0x1800020f8
Capabilities:
Encode data using xor
Get common file path
Read file on windows
Write file on windows

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x5b0]
sub rsp, 0x6b0
movups xmm0, xmmword [str._PDY_U_t_t]
lea r8, [rsp + 0x40]
movzx eax, word [0x180003238]
movsd xmm1, qword [0x180003230]
xor esi, esi
movups xmmword [rsp + 0x40], xmm0
mov r14d, ecx
mov word [rsp + 0x58], ax
movsd qword [rsp + 0x50], xmm1
mov edi, esi
mov eax, 0x51eb851f
mul edi
shr edx, 4
movzx eax, dx
imul ecx, eax, 0x32
movzx eax, di
inc edi
sub ax, cx
add ax, 0x34
xor word [r8], ax
lea r8, [r8 + 2]
cmp edi, 0xd
jl 0x180002149
lea rcx, [rsp + 0x40]
call fcn.180001154
mov rbx, rax
lea rdi, [rsp + 0x40]
movzx eax, si
mov ecx, 0xd
rep stosw word [rdi], ax
mov rcx, rbx
mov edx, 0x470fca41
call section..text
mov edx, 0xc3fa73af
mov rcx, rbx
mov r15, rax
call section..text
mov edx, 0x3147518
mov rcx, rbx
mov r13, rax
call section..text
lea rdx, [rbp - 0x70]
mov qword [rbp + 0x608], rax
mov ecx, 0x104
mov dword [rbp + 0x600], esi
mov rdi, rax
mov dword [rbp + 0x5f8], esi
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x1800023d2
mov eax, dword [0x180003258]
lea r9, [rsp + 0x60]
movups xmm0, xmmword [str.kvzh_r_r_r]
lea r8, [rbp - 0x70]
mov dword [rsp + 0x78], eax
movsd xmm1, qword [str._t_b_b9_B]
lea rdx, str._s_s
movzx eax, word [0x18000325c]
lea rcx, [rbp + 0x1a0]
movaps xmmword [rsp + 0x60], xmm0
mov word [rsp + 0x7c], ax
movsd qword [rsp + 0x70], xmm1
call qword [sym.imp.USER32.dll_wsprintfW]
call r15
mov rcx, rax
mov edx, 8
mov r8d, 0xfffff
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbx, rax
imul eax, r14d, 0xc8
mov r12d, eax
test eax, eax
je 0x1800023ba
and qword [rsp + 0x30], 0
lea rcx, [rbp + 0x1a0]
mov dword [rsp + 0x28], 0x100
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], 2
mov edx, 0x40000000
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r14, rax
cmp rax, 0xffffffffffffffff
je 0x1800023d2
lea rcx, [rbp - 0x80]
call rdi
movzx ecx, word [rbp - 0x72]
call fcn.180001540
call fcn.1800014e4
mov edi, eax
mov r8d, 0xfffff
mov eax, 0x80808081
mov rcx, rbx
imul edi
add edx, edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xff
xor edx, edx
sub edi, eax
call fcn.1800014c0
mov r8d, 0xfffff
mov edx, edi
mov rcx, rbx
call fcn.1800014c0
and qword [rsp + 0x20], 0
lea r9, [rbp + 0x5f8]
mov r8d, 0xfffff
mov rdx, rbx
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x1800023d2
cmp dword [rbp + 0x5f8], 0xfffff
jne 0x1800023d2
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
and qword [rsp + 0x30], 0
lea rcx, [rbp + 0x1a0]
mov dword [rsp + 0x28], 0x4000100
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], 3
mov edx, 0x80000000
call r13
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x1800023d2
and qword [rsp + 0x20], 0
lea r9, [rbp + 0x600]
mov r14d, 0xfffff
mov rdx, rbx
mov r8d, r14d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1800023d2
cmp dword [rbp + 0x600], r14d
jne 0x1800023d2
mov r8d, r14d
xor edx, edx
mov rcx, rbx
call fcn.1800014c0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rdi, qword [rbp + 0x608]
inc rsi
cmp rsi, r12
jb 0x180002262
call r15
mov rcx, rax
mov r8, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, 1
jmp 0x1800023d4
xor eax, eax
mov rbx, qword [rsp + 0x6f0]
add rsp, 0x6b0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret