Function at 0x140001200
Capabilities:
Check mutex on windows
Create directory
Delete directory
Get common file path
Get disk information
Get file system object information
Get thread local storage value

Disassembly:
mov qword [rsp + 0x10], rdx
mov dword [rsp + 8], ecx
push rdi
sub rsp, 0x170
call fcn.1400021f0
movzx eax, al
test eax, eax
jne 0x140001227
mov eax, 0xffffffff
jmp 0x14000171d
xor eax, eax
test eax, eax
je 0x140001450
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateFileW]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetStartupInfoA]
mov dword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_IsDBCSLeadByteEx]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetErrorMode]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetThreadExecutionState]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_Sleep]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHFileOperationW]
mov dword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFileInfoW]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetIconOverlayIndexW]
lea rax, [rsp + 0xf8]
mov rdi, rax
xor eax, eax
mov ecx, 0x10
rep stosb byte [rdi], al
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0xf8]
call sub.SHELL32.dll_SHGetKnownFolderPath
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call sub.SHELL32.dll_SHGetSpecialFolderLocation
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SetCurrentProcessExplicitAppUserModelID]
lea rcx, [rsp + 0x60]
call fcn.140001000
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.140002400
mov qword [rsp + 0x78], 0
mov dword [rsp + 0x70], 0
lea rcx, [rsp + 0x61]
call fcn.140001040
mov qword [rsp + 0x88], rax
lea rcx, [rsp + 0x62]
call fcn.140001020
mov rcx, rax
call fcn.140002780
mov qword [rsp + 0x90], rax
mov rdx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x90]
call fcn.140001dc0
mov qword [rsp + 0x98], rax
mov dword [rsp + 0x50], 1
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0xe0]
lea rcx, [rsp + 0x78]
call qword [rsp + 0x98]
mov dword [rsp + 0x70], eax
lea rax, [rsp + 0x110]
mov rdi, rax
xor eax, eax
mov ecx, 0x58
rep stosb byte [rdi], al
mov qword [rsp + 0x110], 0x58
mov dword [rsp + 0x118], 0
call fcn.140002f56
mov r8d, 0x20
mov edx, 8
mov rcx, qword [rax + 0x30]
call fcn.1400022e0
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x68]
mov qword [rax], 0x28
mov eax, 0x20
imul rax, rax, 0
mov rcx, qword [rsp + 0x68]
mov qword [rcx + rax + 8], 0x20005
movzx eax, word [rsp + 0xe0]
mov ecx, 0x20
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x68]
mov qword [rdx + rcx + 0x10], rax
mov eax, 0x20
imul rax, rax, 0
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0xe8]
mov qword [rcx + rax + 0x18], rdx
mov qword [rsp + 0x80], 0
lea rcx, [rsp + 0x63]
call fcn.140001060
mov rcx, rax
call fcn.1400018d0
mov qword [rsp + 0xa8], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x110]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], 1
mov dword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov r9d, 0x1fffff
mov r8d, 0x1fffff
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0xf0]
call qword [rsp + 0xa8]
lea rcx, [rsp + 0x64]
call fcn.140001080
mov rcx, rax
call fcn.1400018d0
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0xb0], rax
xor edx, edx
mov rcx, qword [rsp + 0xb0]
call qword [rsp + 0xb8]
call fcn.140002f56
mov r8, qword [rsp + 0x68]
xor edx, edx
mov rcx, qword [rax + 0x30]
call fcn.140002360
lea rcx, [rsp + 0x65]
call fcn.1400010c0
mov qword [rsp + 0xc0], rax
lea rcx, [rsp + 0x66]
call fcn.1400010a0
mov rcx, rax
call fcn.140002780
mov qword [rsp + 0xc8], rax
mov rdx, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0xc8]
call fcn.140001dc0
mov qword [rsp + 0xd8], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0xd0], rax
mov rcx, qword [rsp + 0xd0]
call qword [rsp + 0xd8]
call fcn.1400018e0
mov eax, 0x6e
add rsp, 0x170
pop rdi
ret