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

Disassembly:
mov qword [rsp + 0x10], rdx
mov dword [rsp + 8], ecx
push rdi
sub rsp, 0x160
call fcn.140002180
movzx eax, al
test eax, eax
jne 0x140001227
mov eax, 0xffffffff
jmp 0x1400016b6
xor eax, eax
test eax, eax
je 0x1400013e9
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]
lea rcx, [rsp + 0x60]
call fcn.140001000
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.140002390
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.140002710
mov qword [rsp + 0x90], rax
mov rdx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x90]
call fcn.140001d50
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 + 0x100]
mov rdi, rax
xor eax, eax
mov ecx, 0x58
rep stosb byte [rdi], al
mov qword [rsp + 0x100], 0x58
mov dword [rsp + 0x108], 0
call fcn.140002ee6
mov r8d, 0x20
mov edx, 8
mov rcx, qword [rax + 0x30]
call fcn.140002270
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.140001860
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 + 0x100]
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.140001860
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.140002ee6
mov r8, qword [rsp + 0x68]
xor edx, edx
mov rcx, qword [rax + 0x30]
call fcn.1400022f0
lea rcx, [rsp + 0x65]
call fcn.1400010c0
mov qword [rsp + 0xc0], rax
lea rcx, [rsp + 0x66]
call fcn.1400010a0
mov rcx, rax
call fcn.140002710
mov qword [rsp + 0xc8], rax
mov rdx, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0xc8]
call fcn.140001d50
mov qword [rsp + 0xd8], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0xd0], rax
mov rcx, qword [rsp + 0xd0]
call qword [rsp + pe_nt_image_headers64]
call fcn.140001870
mov eax, 0x6e
add rsp, 0x160
pop rdi
ret