Function at 0x100006a70
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 qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
sub rsp, 0x270
mov rax, qword [0x10000f100]
xor rax, rsp
mov qword [rsp + 0x260], rax
lea rcx, [0x100001790]
xor r8d, r8d
xor edx, edx
call fcn.1000057d4
mov ecx, 0x40
lea edx, [rax + 1]
mov esi, eax
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
xor ebx, ebx
cmp rax, rbx
mov rdi, rax
jne 0x100006af8
xor r9d, r9d
xor r8d, r8d
mov edx, 0x4b5
xor ecx, ecx
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 0x10
call fcn.100005554
call fcn.100007b04
mov dword [0x100010488], eax
xor eax, eax
jmp 0x100006f2f
lea rcx, [0x100001790]
mov r8d, esi
mov rdx, rax
call fcn.1000057d4
cmp eax, ebx
jne 0x100006b41
xor r9d, r9d
xor r8d, r8d
mov edx, 0x4b1
xor ecx, ecx
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 0x10
call fcn.100005554
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov dword [0x100010488], 0x80070714
jmp 0x100006af1
lea rdx, [0x100001760]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrcmpA]
mov ecx, dword [0x100010ec0]
mov ebp, 1
cmp eax, ebx
cmove ecx, ebp
mov dword [0x100010ec0], ecx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov r11b, byte [0x10001151e]
cmp r11b, bl
je 0x100006bcd
cmp r11b, 0x5c
jne 0x100006b8e
cmp byte [0x10001151f], r11b
mov r8d, ebx
je 0x100006b91
mov r8d, ebp
lea rcx, [0x10001151e]
xor edx, edx
call fcn.1000068a0
cmp eax, ebx
je 0x100006baa
mov eax, ebp
jmp 0x100006f2f
xor r9d, r9d
xor r8d, r8d
mov edx, 0x4be
xor ecx, ecx
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 0x10
call fcn.100005554
jmp 0x100006af1
cmp dword [0x100011404], ebx
jne 0x100006f02
cmp dword [0x100010ec0], ebx
jne 0x100006f02
lea r13, [0x100010670]
mov r12d, 0x104
mov rdx, r13
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_GetTempPathA]
cmp eax, ebx
je 0x100006c6e
mov r8d, 3
mov edx, ebp
mov rcx, r13
call fcn.1000068a0
cmp eax, ebx
jne 0x100006ba3
lea rcx, [rsp + 0x150]
mov edx, r12d
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
cmp eax, ebx
jne 0x100006c40
lea rdx, [rsp + 0x150]
mov rcx, r13
call fcn.100002cdc
mov r11d, eax
jmp 0x100006c54
mov al, byte [rsp + 0x150]
mov r11d, ebx
cmp byte [0x100010670], al
sete r11b
cmp r11d, ebx
jne 0x100006c6e
mov r8d, ebp
mov edx, ebp
mov rcx, r13
call fcn.1000068a0
cmp eax, ebx
jne 0x100006ba3
lea rsi, [0x100001854]
lea rax, [rsp + 0x40]
sub rsi, rax
mov rdx, r12
lea rcx, [rsp + 0x40]
lea rax, [rdx + 0x7ffffefa]
cmp rax, rbx
je 0x100006ca2
mov al, byte [rsi + rcx]
cmp al, bl
je 0x100006ca2
mov byte [rcx], al
add rcx, rbp
sub rdx, rbp
jne 0x100006c85
cmp rdx, rbx
jne 0x100006caa
sub rcx, rbp
mov byte [rcx], bl
cmp byte [rsp + 0x40], 0x5a
jg 0x100006ed4
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 6
mov edi, eax
je 0x100006cce
cmp eax, 3
jne 0x100006ce2
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x100006d63
cmp edi, 2
jne 0x100006d53
mov al, byte [rsp + 0x40]
cmp al, 0x41
je 0x100006d57
cmp al, 0x42
je 0x100006d57
cmp al, bl
mov dword [rsp + 0x34], ebx
mov dword [rsp + 0x38], ebx
mov dword [rsp + 0x3c], ebx
mov dword [rsp + 0x30], ebx
je 0x100006d57
lea rax, [rsp + 0x30]
lea r9, [rsp + 0x3c]
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x34]
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
cmp eax, ebx
je 0x100006d53
mov ecx, dword [rsp + 0x38]
mov edx, dword [rsp + 0x30]
mov r8d, 0x400
imul ecx, dword [rsp + 0x34]
call qword [sym.imp.KERNEL32.dll_MulDiv]
cmp eax, ebx
je 0x100006d53
cmp eax, 0x19000
jae 0x100006d63
mov al, byte [rsp + 0x40]
add al, bpl
mov byte [rsp + 0x40], al
jmp 0x100006ecc
xor r8d, r8d
lea rcx, [rsp + 0x40]
lea edx, [r8 + 3]
call fcn.1000070b0
cmp eax, ebx
jne 0x100006dd2
lea rcx, [rsp + 0x150]
mov edx, r12d
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
cmp eax, ebx
jne 0x100006da8
lea rdx, [rsp + 0x150]
lea rcx, [rsp + 0x40]
call fcn.100002cdc
mov r11d, eax
mov al, byte [rsp + 0x40]
jmp 0x100006dba
mov al, byte [rsp + 0x40]
mov r11d, ebx
cmp al, byte [rsp + 0x150]
sete r11b
cmp r11d, ebx
jne 0x100006d57
lea rcx, [rsp + 0x40]
xor r8d, r8d
mov edx, ebp
call fcn.1000070b0
cmp eax, ebx
je 0x100006d53
lea rcx, [rsp + 0x150]
mov edx, r12d
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
cmp eax, ebx
jne 0x100006dfe
lea rdx, [rsp + 0x150]
lea rcx, [rsp + 0x40]
call fcn.100002cdc
mov r11d, eax
jmp 0x100006e10
mov al, byte [rsp + 0x150]
mov r11d, ebx
cmp byte [rsp + 0x40], al
sete r11b
cmp r11d, ebx
je 0x100006e23
lea rcx, [rsp + 0x40]
mov edx, r12d
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea r8, [0x100001858]
lea rcx, [rsp + 0x40]
mov edx, r12d
call fcn.100007fa4
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x100006e56
lea rcx, [rsp + 0x40]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
jmp 0x100006e59
and eax, 0x10
cmp eax, ebx
jne 0x100006e6e
mov al, byte [rsp + 0x40]
mov byte [rsp + 0x43], bl
add al, bpl
mov byte [rsp + 0x40], al
jmp 0x100006ecc
lea rcx, [rsp + 0x40]
mov edx, 2
call qword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea rdx, [rsp + 0x40]
mov r11, r12
sub rdx, r13
mov rcx, r13
lea rax, [r11 + 0x7ffffefa]
cmp rax, rbx
je 0x100006ea9
mov al, byte [rcx + rdx]
cmp al, bl
je 0x100006ea9
mov byte [rcx], al
add rcx, rbp
sub r11, rbp
jne 0x100006e8c
cmp r11, rbx
jne 0x100006eb1
sub rcx, rbp
mov byte [rcx], bl
xor r8d, r8d
mov edx, ebp
mov rcx, r13
call fcn.1000068a0
cmp eax, ebx
jne 0x100006ba3
mov al, byte [rsp + 0x40]
cmp al, 0x5a
jle 0x100006cb7
lea rcx, [rsp + 0x40]
mov edx, r12d
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov edx, 3
lea rcx, [rsp + 0x40]
lea r8d, [rdx + 1]
call fcn.1000070b0
cmp eax, ebx
je 0x100006af1
jmp 0x100006c7d
mov rcx, qword [0x100010ee0]
lea r9, [0x100003dc8]
xor r8d, r8d
mov edx, 0x7d2
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
call fcn.100007e60
cmp rax, rbx
setne bl
mov eax, ebx
mov rcx, qword [rsp + 0x260]
xor rcx, rsp
call fcn.10000c850
lea r11, [rsp + 0x270]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r13
pop r12
pop rdi
ret