Function at 0x1400015f8
Capabilities:
Copy file
Enumerate process modules
Enumerate processes
Get common file path
Read .ini file
Set file attributes

Disassembly:
mov rax, rsp
push r12
sub rsp, 0x9f0
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x140050110]
xor rax, rsp
mov qword [rsp + 0x9e0], rax
xor ebp, ebp
mov edi, ebp
xor edx, edx
lea ecx, [rbp + 2]
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov rbx, rax
xor edx, edx
mov r8d, 0x234
lea rcx, [rsp + 0x84]
call fcn.14001da40
mov dword [rsp + 0x80], 0x238
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov esi, eax
lea rdx, [rsp + 0x80]
mov rcx, rbx
call sub.KERNEL32.dll_Process32FirstW
cmp eax, ebp
je 0x14000169f
cmp dword [rsp + 0x88], esi
cmove edi, dword [rsp + 0xa0]
lea rdx, [rsp + 0x80]
mov rcx, rbx
call sub.KERNEL32.dll_Process32NextW
cmp eax, ebp
jne 0x14000167c
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r8d, edi
xor edx, edx
mov ecx, 0x100410
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rdi, rax
cmp rax, rbp
je 0x140001700
lea r9, [rsp + 0x58]
mov r8d, 8
lea rdx, [rsp + 0x60]
mov rcx, rax
call sub.PSAPI.DLL_EnumProcessModules
cmp eax, ebp
je 0x1400016f7
mov r9d, 0x104
lea r8, [rsp + 0x5c0]
mov rdx, qword [rsp + 0x60]
mov rcx, rdi
call sub.PSAPI.DLL_GetModuleFileNameExW
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, 0x5c
lea rcx, [rsp + 0x5c0]
call fcn.14001d488
cmp rax, rbp
je 0x140001a16
mov word [rax], bp
lea rdx, [rsp + 0x5c0]
lea rcx, [rsp + 0x40]
call fcn.140004b30
nop
lea r8, str.config.dat
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x38]
call fcn.140004428
nop
lea r8, str.user.dat
lea rdx, [0x140056a00]
lea rcx, [rsp + 0x30]
call fcn.140004428
nop
mov word [rsp + 0x3c0], bp
xor edx, edx
mov r8d, 0x1fe
lea rcx, [rsp + 0x3c2]
call fcn.14001da40
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], 0x100
lea r9, [rsp + 0x3c0]
lea r8, [0x14004376c]
lea rdx, [0x140042734]
lea rdi, str.common
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp eax, ebp
jbe 0x1400017e7
mov edx, 0x80
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov r9, qword [rsp + 0x30]
lea r8, [rsp + 0x3c0]
lea rdx, [0x140042734]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov word [rsp + 0x2c0], bp
xor edx, edx
mov r8d, 0xfe
lea rcx, [rsp + 0x2c2]
call fcn.14001da40
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], 0x80
lea r9, [rsp + 0x2c0]
lea r8, [0x14004376c]
lea rdx, str.shadow
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
xor eax, eax
or r12, 0xffffffffffffffff
mov rcx, r12
lea rdi, [rsp + 0x2c0]
repne scasw ax, word [rdi]
not rcx
dec rcx
mov rdi, rbp
cmp ecx, ebp
jle 0x140001882
movsxd rsi, ecx
movzx ebx, word [rsp + rdi*2 + 0x2c0]
movzx ecx, bx
call fcn.14000837c
cmp eax, ebp
je 0x14000187a
mov edx, 1
movzx ecx, bx
call fcn.140031ef0
inc rdi
cmp rdi, rsi
jl 0x140001859
mov edx, 0x104
lea rcx, [rsp + 0x7d0]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea r8, [0x140042760]
mov edi, 0x105
mov rdx, rdi
lea rcx, [rsp + 0x7d0]
call fcn.14001d288
lea r8, str.diskpt.dat
mov rdx, rdi
lea rcx, [rsp + 0x7d0]
call fcn.14001d288
lea r8, str.exclusion.dat
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x50]
call fcn.140004428
nop
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.1400047b4
nop
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
cmp eax, ebp
jg 0x14000190e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea r8, [0x140042760]
lea rdx, [0x140056a10]
lea rcx, [rsp + 0x68]
call fcn.140004428
nop
lea r8, str.diskpt.dat
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.140004428
nop
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.1400047b4
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
cmp eax, ebp
jg 0x14000196c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
cmp eax, ebp
jg 0x14000198d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov edx, 0x80
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
xor r8d, r8d
mov rdx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
cmp eax, ebp
jg 0x1400019d3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
cmp eax, ebp
jg 0x1400019f5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
cmp eax, ebp
jg 0x140001a16
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rsp + 0x9e0]
xor rcx, rsp
call fcn.14001cb20
lea r11, [rsp + 0x9f0]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop r12
ret