Function at 0x100006a80
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.1000057f4
mov ecx, 0x40
lea edx, [rax + 1]
mov esi, eax
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
xor ebx, ebx
mov rdi, rax
cmp rax, rbx
jne 0x100006b08
xor r9d, r9d
xor r8d, r8d
mov edx, 0x4b5
xor ecx, ecx
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 0x10
call fcn.100005574
call fcn.100007b14
mov dword [0x100010488], eax
xor eax, eax
jmp 0x100006f3f
lea rcx, [0x100001790]
mov r8d, esi
mov rdx, rax
call fcn.1000057f4
cmp eax, ebx
jne 0x100006b51
xor r9d, r9d
xor r8d, r8d
mov edx, 0x4b1
xor ecx, ecx
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 0x10
call fcn.100005574
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov dword [0x100010488], 0x80070714
jmp 0x100006b01
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 0x100006bdd
cmp r11b, 0x5c
jne 0x100006b9e
mov r8d, ebx
cmp byte [0x10001151f], r11b
je 0x100006ba1
mov r8d, ebp
lea rcx, [0x10001151e]
xor edx, edx
call fcn.1000068b4
cmp eax, ebx
je 0x100006bba
mov eax, ebp
jmp 0x100006f3f
xor r9d, r9d
xor r8d, r8d
mov edx, 0x4be
xor ecx, ecx
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 0x10
call fcn.100005574
jmp 0x100006b01
cmp dword [0x100011404], ebx
jne 0x100006f12
cmp dword [0x100010ec0], ebx
jne 0x100006f12
lea r13, [0x100010670]
mov r12d, 0x104
mov rdx, r13
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_GetTempPathA]
cmp eax, ebx
je 0x100006c7e
mov r8d, 3
mov edx, ebp
mov rcx, r13
call fcn.1000068b4
cmp eax, ebx
jne 0x100006bb3
lea rcx, [rsp + 0x150]
mov edx, r12d
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
cmp eax, ebx
jne 0x100006c50
lea rdx, [rsp + 0x150]
mov rcx, r13
call fcn.100002ce4
mov r11d, eax
jmp 0x100006c64
mov al, byte [rsp + 0x150]
mov r11d, ebx
cmp byte [0x100010670], al
sete r11b
cmp r11d, ebx
jne 0x100006c7e
mov r8d, ebp
mov edx, ebp
mov rcx, r13
call fcn.1000068b4
cmp eax, ebx
jne 0x100006bb3
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 0x100006cb2
mov al, byte [rsi + rcx]
cmp al, bl
je 0x100006cb2
mov byte [rcx], al
add rcx, rbp
sub rdx, rbp
jne 0x100006c95
cmp rdx, rbx
jne 0x100006cba
sub rcx, rbp
mov byte [rcx], bl
cmp byte [rsp + 0x40], 0x5a
jg 0x100006ee4
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeA]
mov edi, eax
cmp eax, 6
je 0x100006cde
cmp eax, 3
jne 0x100006cf2
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x100006d73
cmp edi, 2
jne 0x100006d63
mov al, byte [rsp + 0x40]
cmp al, 0x41
je 0x100006d67
cmp al, 0x42
je 0x100006d67
mov dword [rsp + 0x34], ebx
mov dword [rsp + 0x38], ebx
mov dword [rsp + 0x3c], ebx
mov dword [rsp + 0x30], ebx
cmp al, bl
je 0x100006d67
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 0x100006d63
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 0x100006d63
cmp eax, 0x19000
jae 0x100006d73
mov al, byte [rsp + 0x40]
add al, bpl
mov byte [rsp + 0x40], al
jmp 0x100006edc
xor r8d, r8d
lea rcx, [rsp + 0x40]
lea edx, [r8 + 3]
call fcn.1000070bc
cmp eax, ebx
jne 0x100006de2
lea rcx, [rsp + 0x150]
mov edx, r12d
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
cmp eax, ebx
jne 0x100006db8
lea rdx, [rsp + 0x150]
lea rcx, [rsp + 0x40]
call fcn.100002ce4
mov r11d, eax
mov al, byte [rsp + 0x40]
jmp 0x100006dca
mov al, byte [rsp + 0x40]
mov r11d, ebx
cmp al, byte [rsp + 0x150]
sete r11b
cmp r11d, ebx
jne 0x100006d67
lea rcx, [rsp + 0x40]
xor r8d, r8d
mov edx, ebp
call fcn.1000070bc
cmp eax, ebx
je 0x100006d63
lea rcx, [rsp + 0x150]
mov edx, r12d
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
cmp eax, ebx
jne 0x100006e0e
lea rdx, [rsp + 0x150]
lea rcx, [rsp + 0x40]
call fcn.100002ce4
mov r11d, eax
jmp 0x100006e20
mov al, byte [rsp + 0x150]
mov r11d, ebx
cmp byte [rsp + 0x40], al
sete r11b
cmp r11d, ebx
je 0x100006e33
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.100007fc0
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x100006e66
lea rcx, [rsp + 0x40]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
jmp 0x100006e69
and eax, 0x10
cmp eax, ebx
jne 0x100006e7e
mov al, byte [rsp + 0x40]
mov byte [rsp + 0x43], bl
add al, bpl
mov byte [rsp + 0x40], al
jmp 0x100006edc
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 0x100006eb9
mov al, byte [rcx + rdx]
cmp al, bl
je 0x100006eb9
mov byte [rcx], al
add rcx, rbp
sub r11, rbp
jne 0x100006e9c
cmp r11, rbx
jne 0x100006ec1
sub rcx, rbp
mov byte [rcx], bl
xor r8d, r8d
mov edx, ebp
mov rcx, r13
call fcn.1000068b4
cmp eax, ebx
jne 0x100006bb3
mov al, byte [rsp + 0x40]
cmp al, 0x5a
jle 0x100006cc7
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.1000070bc
cmp eax, ebx
je 0x100006b01
jmp 0x100006c8d
mov rcx, qword [0x100010ee0]
lea r9, [0x100003ddc]
xor r8d, r8d
mov edx, 0x7d2
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
call fcn.100007e70
cmp rax, rbx
setne bl
mov eax, ebx
mov rcx, qword [rsp + 0x260]
xor rcx, rsp
call fcn.10000c9f0
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