Function at 0x7ff6629866c4
Capabilities:
Check if file exists
Create directory
Get common file path
Get disk information
Get disk size
Get file attributes
Set file attributes

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
push rbp
push r14
push r15
lea rbp, [rax - 0x78]
sub rsp, 0x160
mov rax, qword [0x7ff66298c008]
xor rax, rsp
mov qword [rbp + 0x50], rax
xor r8d, r8d
lea rcx, [0x7ff6629898d8]
xor edx, edx
call fcn.7ff662985050
mov ecx, 0x40
mov esi, eax
lea edx, [rax + 1]
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
nop dword [rax + rax]
xor ebx, ebx
mov rdi, rax
test rax, rax
jne 0x7ff662986756
mov dword [rsp + 0x28], ebx
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], 0x10
mov edx, 0x4b5
xor ecx, ecx
call fcn.7ff662984dcc
call fcn.7ff662987700
mov dword [0x7ff66298d544], eax
xor eax, eax
jmp 0x7ff662986b3a
mov r8d, esi
lea rcx, [0x7ff6629898d8]
mov rdx, rdi
call fcn.7ff662985050
test eax, eax
jne 0x7ff6629867a5
mov dword [rsp + 0x28], ebx
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], 0x10
mov edx, 0x4b1
xor ecx, ecx
call fcn.7ff662984dcc
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LocalFree]
nop dword [rax + rax]
mov dword [0x7ff66298d544], 0x80070714
jmp 0x7ff66298674f
lea rdx, [0x7ff6629898a8]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrcmpA]
nop dword [rax + rax]
mov ecx, dword [0x7ff66298de60]
mov r14d, 1
test eax, eax
cmove ecx, r14d
mov dword [0x7ff66298de60], ecx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LocalFree]
nop dword [rax + rax]
mov al, byte [0x7ff66298ce1e]
test al, al
je 0x7ff662986837
cmp al, 0x5c
jne 0x7ff6629867fb
cmp byte [0x7ff66298ce1f], al
mov r8d, ebx
je 0x7ff6629867fe
mov r8d, r14d
xor edx, edx
lea rcx, [0x7ff66298ce1e]
call fcn.7ff6629864e4
test eax, eax
jne 0x7ff662986b0f
mov dword [rsp + 0x28], ebx
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], 0x10
mov edx, 0x4be
xor ecx, ecx
call fcn.7ff662984dcc
jmp 0x7ff66298674f
cmp dword [0x7ff66298cd04], ebx
jne 0x7ff662986b14
cmp dword [0x7ff66298de60], ebx
jne 0x7ff662986b14
lea r15, [0x7ff66298d610]
mov r12d, 0x104
mov rdx, r15
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_GetTempPathA]
nop dword [rax + rax]
test eax, eax
je 0x7ff6629868ad
mov r8d, 3
mov edx, r14d
mov rcx, r15
call fcn.7ff6629864e4
test eax, eax
jne 0x7ff662986b0f
mov rcx, r15
call fcn.7ff662982468
test eax, eax
jne 0x7ff6629868ad
mov r8d, r14d
mov edx, r14d
mov rcx, r15
call fcn.7ff6629864e4
test eax, eax
jne 0x7ff662986b0f
lea rsi, [0x7ff66298999c]
lea rax, [rsp + 0x40]
sub rsi, rax
mov rdx, r12
lea rcx, [rsp + 0x40]
lea rax, [rdx + 0x7ffffefa]
test rax, rax
je 0x7ff6629868e1
mov al, byte [rsi + rcx]
test al, al
je 0x7ff6629868e1
mov byte [rcx], al
add rcx, r14
sub rdx, r14
jne 0x7ff6629868c4
test rdx, rdx
lea rax, [rcx - 1]
cmovne rax, rcx
mov byte [rax], bl
cmp byte [rsp + 0x40], 0x5a
jg 0x7ff662986adb
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeA]
nop dword [rax + rax]
mov edi, eax
cmp eax, 6
je 0x7ff662986916
cmp eax, 3
jne 0x7ff662986930
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
nop dword [rax + rax]
cmp eax, 0xffffffff
jne 0x7ff6629869bd
cmp edi, 2
jne 0x7ff6629869ad
mov cl, byte [rsp + 0x40]
lea eax, [rcx - 0x41]
cmp al, r14b
jbe 0x7ff6629869b1
mov dword [rsp + 0x34], ebx
mov dword [rsp + 0x30], ebx
mov dword [rsp + 0x3c], ebx
mov dword [rsp + 0x38], ebx
test cl, cl
je 0x7ff6629869b1
lea rax, [rsp + 0x38]
lea r9, [rsp + 0x3c]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x34]
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
nop dword [rax + rax]
test eax, eax
je 0x7ff6629869ad
mov ecx, dword [rsp + 0x30]
mov r8d, 0x400
imul ecx, dword [rsp + 0x34]
mov edx, dword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_MulDiv]
nop dword [rax + rax]
test eax, eax
je 0x7ff6629869ad
cmp eax, 0x19000
jae 0x7ff6629869bd
mov cl, byte [rsp + 0x40]
add cl, r14b
mov byte [rsp + 0x40], cl
jmp 0x7ff662986ad2
xor r8d, r8d
lea rcx, [rsp + 0x40]
lea edx, [r8 + 3]
call fcn.7ff662986ca4
test eax, eax
jne 0x7ff6629869f4
lea rcx, [rsp + 0x40]
call fcn.7ff662982468
test eax, eax
jne 0x7ff6629869ad
xor r8d, r8d
lea rcx, [rsp + 0x40]
mov edx, r14d
call fcn.7ff662986ca4
test eax, eax
je 0x7ff6629869ad
lea rcx, [rsp + 0x40]
call fcn.7ff662982468
test eax, eax
je 0x7ff662986a16
mov edx, r12d
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
nop dword [rax + rax]
lea r8, [0x7ff6629899a0]
mov edx, r12d
lea rcx, [rsp + 0x40]
call fcn.7ff662987ba8
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
nop dword [rax + rax]
cmp eax, 0xffffffff
jne 0x7ff662986a55
xor edx, edx
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
nop dword [rax + rax]
jmp 0x7ff662986a58
and eax, 0x10
test eax, eax
jne 0x7ff662986a6d
mov cl, byte [rsp + 0x40]
add cl, r14b
mov byte [rsp + 0x43], bl
mov byte [rsp + 0x40], cl
jmp 0x7ff662986ad2
mov edx, 2
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesA]
nop dword [rax + rax]
lea r8, [rsp + 0x40]
mov rdx, r12
sub r8, r15
mov rcx, r15
lea rax, [rdx + 0x7ffffefa]
test rax, rax
je 0x7ff662986aaf
mov al, byte [rcx + r8]
test al, al
je 0x7ff662986aaf
mov byte [rcx], al
add rcx, r14
sub rdx, r14
jne 0x7ff662986a91
test rdx, rdx
lea rax, [rcx - 1]
mov edx, r14d
cmovne rax, rcx
xor r8d, r8d
mov rcx, r15
mov byte [rax], bl
call fcn.7ff6629864e4
test eax, eax
jne 0x7ff662986b0f
mov cl, byte [rsp + 0x40]
cmp cl, 0x5a
jle 0x7ff6629868f9
mov edx, r12d
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
nop dword [rax + rax]
mov edx, 3
lea rcx, [rsp + 0x40]
lea r8d, [rdx + 1]
call fcn.7ff662986ca4
test eax, eax
je 0x7ff66298674f
jmp 0x7ff6629868bc
mov eax, r14d
jmp 0x7ff662986b3a
mov qword [rsp + 0x28], rbx
lea r9, [0x7ff662983530]
xor r8d, r8d
mov qword [rsp + 0x20], rbx
mov edx, 0x7d2
call fcn.7ff662987ac8
test rax, rax
setne bl
mov eax, ebx
mov rcx, qword [rbp + 0x50]
xor rcx, rsp
call fcn.7ff662988470
lea r11, [rsp + 0x160]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret