Function at 0x1400056c0
Capabilities:
Check if file exists
Create directory
Delete file
Get common file path
Read .ini file
Set file attributes

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x460
mov rax, qword [0x140074c00]
xor rax, rsp
mov qword [rsp + 0x450], rax
lea rcx, [rsp + 0x242]
xor ebp, ebp
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x240], bp
call fcn.14003ea70
lea rcx, [rsp + 0x32]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x30], bp
call fcn.14003ea70
lea rsi, [0x14007b3e0]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x801a
xor ecx, ecx
mov qword [rsp + 0x20], rsi
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
lea r8, [rsp + 0x30]
lea rdx, str.OEM_NAME
lea rcx, str.Printer
call fcn.140008550
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x30]
repne scasw ax, word [rdi]
mov edi, 0x104
not rcx
cmp rcx, 1
jne 0x1400057c1
lea r8, str.Pantum
lea rax, [rsp + 0x30]
mov rdx, rdi
sub r8, rax
lea rcx, [rsp + 0x30]
nop dword [rax]
lea rax, [rdx + 0x7ffffefa]
test rax, rax
je 0x1400057b5
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1400057b5
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x140005790
jmp 0x1400057ba
test rdx, rdx
jne 0x1400057be
sub rcx, 2
mov word [rcx], bp
mov rcx, rdi
mov rax, rsi
nop word [rax + rax]
lea rbx, [0x14006052c]
cmp word [rax], bp
je 0x1400057e8
add rax, 2
sub rcx, 1
jne 0x1400057d0
jmp 0x14000583f
test rcx, rcx
je 0x14000583f
mov rdx, rdi
sub rdx, rcx
mov rcx, rdi
sub rcx, rdx
lea rax, [rsi + rdx*2]
je 0x140005838
mov r9, rbx
lea rdx, [rcx + rdx + 0x7ffffefb]
sub r9, rax
nop dword [rax]
test rdx, rdx
je 0x140005833
movzx r8d, word [r9 + rax]
test r8w, r8w
je 0x140005833
mov word [rax], r8w
add rax, 2
dec rdx
sub rcx, 1
jne 0x140005810
jmp 0x140005838
test rcx, rcx
jne 0x14000583c
sub rax, 2
mov word [rax], bp
mov rcx, rdi
mov rax, rsi
cmp word [rax], bp
je 0x140005856
add rax, 2
sub rcx, 1
jne 0x140005845
jmp 0x1400058af
test rcx, rcx
je 0x1400058af
mov rdx, rdi
sub rdx, rcx
mov rcx, rdi
sub rcx, rdx
lea rax, [rsi + rdx*2]
je 0x1400058a8
lea r9, [rsp + 0x30]
lea rdx, [rcx + rdx + 0x7ffffefb]
sub r9, rax
nop dword [rax]
test rdx, rdx
je 0x1400058a3
movzx r8d, word [r9 + rax]
test r8w, r8w
je 0x1400058a3
mov word [rax], r8w
add rax, 2
dec rdx
sub rcx, 1
jne 0x140005880
jmp 0x1400058a8
test rcx, rcx
jne 0x1400058ac
sub rax, 2
mov word [rax], bp
mov rcx, rsi
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x1400058d5
xor edx, edx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov edx, 0x80
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [rsp + 0x240]
call fcn.140008340
mov r11, rdi
mov rax, rsi
cmp word [rax], bp
je 0x1400058f9
add rax, 2
sub r11, 1
jne 0x1400058e8
jmp 0x14000594f
test r11, r11
je 0x14000594f
mov rdx, rdi
mov rcx, rdi
sub rdx, r11
sub rcx, rdx
lea rax, [rsi + rdx*2]
je 0x140005948
mov r9, rbx
lea rdx, [rcx + rdx + 0x7ffffefb]
sub r9, rax
nop
test rdx, rdx
je 0x140005943
movzx r8d, word [r9 + rax]
test r8w, r8w
je 0x140005943
mov word [rax], r8w
add rax, 2
dec rdx
sub rcx, 1
jne 0x140005920
jmp 0x140005948
test rcx, rcx
jne 0x14000594c
sub rax, 2
mov word [rax], bp
mov rcx, rdi
mov rax, rsi
cmp word [rax], bp
je 0x140005966
add rax, 2
sub rcx, 1
jne 0x140005955
jmp 0x1400059bf
test rcx, rcx
je 0x1400059bf
mov rdx, rdi
sub rdx, rcx
mov rcx, rdi
sub rcx, rdx
lea rax, [rsi + rdx*2]
je 0x1400059b8
lea r9, [rsp + 0x240]
lea rdx, [rcx + rdx + 0x7ffffefb]
sub r9, rax
test rdx, rdx
je 0x1400059b3
movzx r8d, word [r9 + rax]
test r8w, r8w
je 0x1400059b3
mov word [rax], r8w
add rax, 2
dec rdx
sub rcx, 1
jne 0x140005990
jmp 0x1400059b8
test rcx, rcx
jne 0x1400059bc
sub rax, 2
mov word [rax], bp
mov rcx, rsi
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x1400059e5
xor edx, edx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov edx, 0x80
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov rcx, rdi
mov rax, rsi
nop dword [rax + rax]
cmp word [rax], bp
je 0x140005a01
add rax, 2
sub rcx, 1
jne 0x1400059f0
jmp 0x140005a52
test rcx, rcx
je 0x140005a52
mov rdx, rdi
sub rdx, rcx
mov rcx, rdi
sub rcx, rdx
lea rax, [rsi + rdx*2]
je 0x140005a4b
lea rdx, [rcx + rdx + 0x7ffffefb]
sub rbx, rax
test rdx, rdx
je 0x140005a46
movzx r8d, word [rbx + rax]
test r8w, r8w
je 0x140005a46
mov word [rax], r8w
add rax, 2
dec rdx
sub rcx, 1
jne 0x140005a23
jmp 0x140005a4b
test rcx, rcx
jne 0x140005a4f
sub rax, 2
mov word [rax], bp
mov rcx, rdi
mov rax, rsi
cmp word [rax], bp
je 0x140005a69
add rax, 2
sub rcx, 1
jne 0x140005a58
jmp 0x140005ac2
test rcx, rcx
je 0x140005ac2
mov rdx, rdi
sub rdx, rcx
mov rcx, rdi
sub rcx, rdx
lea rax, [rsi + rdx*2]
je 0x140005abb
lea r9, [rsp + 0x240]
lea rdx, [rcx + rdx + 0x7ffffefb]
sub r9, rax
test rdx, rdx
je 0x140005ab6
movzx r8d, word [r9 + rax]
test r8w, r8w
je 0x140005ab6
mov word [rax], r8w
add rax, 2
dec rdx
sub rcx, 1
jne 0x140005a93
jmp 0x140005abb
test rcx, rcx
jne 0x140005abf
sub rax, 2
mov word [rax], bp
mov rcx, rdi
mov rax, rsi
cmp word [rax], bp
je 0x140005ad9
add rax, 2
sub rcx, 1
jne 0x140005ac8
jmp 0x140005b2d
test rcx, rcx
je 0x140005b2d
mov rdx, rdi
sub rdx, rcx
sub rdi, rdx
lea rax, [rsi + rdx*2]
je 0x140005b26
lea r8, str.debug.dat
lea rcx, [rdi + rdx + 0x7ffffefb]
sub r8, rax
nop
test rcx, rcx
je 0x140005b21
movzx edx, word [r8 + rax]
test dx, dx
je 0x140005b21
mov word [rax], dx
add rax, 2
dec rcx
sub rdi, 1
jne 0x140005b00
jmp 0x140005b26
test rdi, rdi
jne 0x140005b2a
sub rax, 2
mov word [rax], bp
lea rdx, str.OpenDebug
lea rcx, str.Option
mov r9, rsi
mov r8d, 2
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp eax, 2
jne 0x140005bae
lea edi, [rax + 3]
lea r8, [0x140060588]
lea rdx, str.OpenDebug
lea rcx, str.Option
mov r9, rsi
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
test eax, eax
jne 0x140005bae
sub edi, 1
jne 0x140005b52
mov edx, 0x80
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
lea r8, [0x140060588]
lea rdx, str.OpenDebug
lea rcx, str.Option
mov r9, rsi
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov rcx, qword [rsp + 0x450]
xor rcx, rsp
call fcn.14003d6d0
lea r11, [rsp + 0x460]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret