Function at 0x18003b9b0
Capabilities:
Check if file exists
Delete file
Get file attributes
Set file attributes
Timestomp file

Disassembly:
mov r11, rsp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x3b0
mov qword [rsp + 0xe0], 0xfffffffffffffffe
mov rax, qword [0x1800d1eb0]
xor rax, rsp
mov qword [rsp + 0x3a0], rax
mov rax, r8
mov qword [rsp + 0x40], rax
mov rbx, rcx
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x70], rax
mov qword [r11 - 0x2a8], 7
xor r14d, r14d
mov qword [r11 - 0x2b0], r14
mov word [r11 - 0x2c0], r14w
mov qword [r11 - 0x2d0], 7
mov qword [r11 - 0x2d8], r14
mov word [r11 - 0x2e8], r14w
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [r11 - 0x2e8]
call fcn.180004cc0
nop
lea rcx, [rsp + 0x150]
call fcn.180033230
nop
mov r12d, r14d
mov qword [rsp + 0xd0], r14
lea ecx, [r14 + 0x18]
call fcn.18007b11c
mov r13, rax
test rax, rax
je 0x18003c2c1
mov qword [rsp + 0xc8], rax
mov qword [rax], rax
mov qword [rax + 8], rax
or rsi, 0xffffffffffffffff
or r15, rsi
mov dword [rsp + 0x54], r14d
mov qword [rsp + 0x80], r14
mov qword [rsp + 0x78], r14
mov dword [rsp + 0x50], r14d
mov qword [rsp + 0x58], r14
lea rcx, [rsp + 0x100]
cmp qword [rsp + 0x118], 8
cmovae rcx, qword [rsp + 0x100]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 1
je 0x18003bb13
call fcn.180011760
test al, al
je 0x18003bb09
lea rcx, [rsp + 0x100]
cmp qword [rsp + 0x118], 8
cmovae rcx, qword [rsp + 0x100]
lea edx, [rsi + 3]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov dword [rsp + 0x50], 1
jmp 0x18003bb13
mov edi, 0x7ab7
jmp 0x18003bfd4
lea rcx, [rsp + 0x100]
cmp qword [rsp + 0x118], 8
cmovae rcx, qword [rsp + 0x100]
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 4
xor r9d, r9d
mov edx, 0xc0000000
lea r8d, [r9 + 7]
call qword [0x1800d95d8]
mov rsi, rax
mov qword [rsp + 0x48], rax
cmp rax, 0xffffffffffffffff
jne 0x18003bb6c
mov edi, 0x7ab8
jmp 0x18003bfd4
mov rdx, rax
lea rcx, [rsp + 0x150]
call fcn.180033f10
mov rdx, r14
lea rdi, [0x1800a8438]
nop word [rax + rax]
movzx eax, byte [rdx + rdi]
cmp byte [rsp + rdx + 0x178], al
jne 0x18003bfcf
inc rdx
cmp rdx, 9
jl 0x18003bb90
mov rcx, r14
nop dword [rax]
movzx eax, byte [rcx + rdi]
cmp byte [rsp + rcx + 0x178], al
jne 0x18003bfc8
inc rcx
cmp rcx, 9
jl 0x18003bbb0
movzx eax, word [rsp + 0x188]
cmp ax, 1
je 0x18003bbfa
cmp ax, 0xb
je 0x18003bbfa
cmp ax, 0xc
je 0x18003bbfa
cmp ax, 0xd
je 0x18003bbfa
cmp ax, 0xe
je 0x18003bbfa
cmp ax, 0x15
jne 0x18003bfc8
mov rax, qword [rbx]
mov edx, dword [rsp + 0x19c]
mov rcx, rbx
call qword [rax]
test eax, eax
jne 0x18003bc17
mov edi, 0x7ac4
jmp 0x18003bfd4
lea rcx, [rsp + 0x150]
call fcn.1800338d0
test al, al
jne 0x18003bc32
mov edi, 0x7abf
jmp 0x18003bfd4
lea rdx, [rsp + 0x58]
mov rcx, rsi
call qword [0x1800d9648]
test eax, eax
jne 0x18003bc4e
mov edi, 0x7aba
jmp 0x18003bfd4
xor r9d, r9d
lea r8, [rsp + 0x128]
lea rdx, [rsp + 0x100]
mov rcx, qword [rsp + 0x58]
call fcn.18003f730
test eax, eax
jne 0x18003bc79
mov edi, 0x7ab9
jmp 0x18003bfd4
lea rbx, [rsp + 0x1c4]
mov edi, r14d
cmp dword [rsp + 0x1c0], r14d
jbe 0x18003bcf9
movabs r15, 0x1ffffffffffffffe
nop dword [rax + rax]
mov rax, qword [rbx]
mov qword [rsp + 0x68], rax
lea r8, [rsp + 0x68]
mov rdx, qword [r13 + 8]
mov rcx, r13
call fcn.180034420
mov rcx, r15
sub rcx, r12
cmp rcx, 1
jb 0x18003bcec
inc r12
mov qword [rsp + 0xd0], r12
mov qword [r13 + 8], rax
mov rcx, qword [rax + 8]
mov qword [rcx], rax
add rbx, 8
inc edi
cmp edi, dword [rsp + 0x1c0]
jb 0x18003bca0
jmp 0x18003bcf9
lea rcx, str.list_T__too_long
call fcn.180078320
int3
lea rcx, [rsp + 0x128]
cmp qword [rsp + 0x140], 8
cmovae rcx, qword [rsp + 0x128]
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0xc0000000
lea r8d, [r9 + 7]
call qword [0x1800d95d8]
mov r15, rax
mov qword [rsp + 0x68], rax
cmp rax, 0xffffffffffffffff
jne 0x18003bd52
mov edi, 0x7ab8
jmp 0x18003bfd4
lea r9, [rsp + 0xa0]
lea r8, [rsp + 0x98]
lea rdx, [rsp + 0x88]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileTime]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x200
mov rcx, rsi
call qword [0x1800d9618]
nop
mov rbx, qword [rsp + 0x60]
mov ecx, dword [rbx + 0x81c]
call fcn.180078408
mov rsi, rax
mov rdi, qword [rsp + 0x58]
add rdi, 0xfffffffffffffe00
nop word [rax + rax]
mov r8d, dword [rbx + 0x81c]
mov ebx, r8d
cmp rdi, r8
cmovl ebx, edi
xor edx, edx
mov rcx, rsi
call fcn.18007e840
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x54]
mov r8d, ebx
mov rdx, rsi
mov rcx, qword [rsp + 0x48]
call qword [0x1800d95f8]
test eax, eax
je 0x18003bf9c
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x54]
mov r8d, ebx
mov rdx, rsi
mov rcx, r15
call qword [0x1800d9608]
test eax, eax
je 0x18003bf90
mov eax, ebx
sub rdi, rax
test rdi, rdi
mov rbx, qword [rsp + 0x60]
jg 0x18003bdb0
test rsi, rsi
je 0x18003be2a
mov rcx, rsi
call fcn.18007b7a8
test r12, r12
je 0x18003beea
mov rdi, qword [r13]
cmp rdi, r13
je 0x18003beea
xor eax, eax
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc0], rax
mov ebx, dword [rdi + 0x10]
mov esi, dword [rdi + 0x14]
mov ecx, esi
call fcn.180078408
mov r12, rax
mov dword [rsp + 0xb8], ebx
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8d, esi
mov rdx, r12
mov rcx, r15
call qword [0x1800d95f8]
mov rax, qword [rsp + 0x60]
lea rdx, [rax + 8]
lea rcx, [rax + 0x810]
mov dword [rsp + 0x20], esi
mov r9, r12
mov r8, r12
call fcn.18006c590
lea r11, [rsp + 0xa8]
mov qword [rsp + 0x20], r11
xor r9d, r9d
mov r8d, esi
mov rdx, r12
mov rcx, r15
call qword [0x1800d9608]
mov rcx, r12
call fcn.18007b7a8
mov rdi, qword [rdi]
cmp rdi, r13
jne 0x18003be40
lea r9, [rsp + 0xa0]
lea r8, [rsp + 0x98]
lea rdx, [rsp + 0x88]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_SetFileTime]
test eax, eax
jne 0x18003bf1e
mov edi, 0x7ac0
mov rsi, qword [rsp + 0x48]
jmp 0x18003bfd4
mov rcx, qword [rsp + 0x48]
call qword [0x1800d9668]
mov rcx, r15
call qword [0x1800d9668]
or rsi, 0xffffffffffffffff
or r15, rsi
lea rdx, [rsp + 0x100]
cmp qword [rsp + 0x118], 8
cmovae rdx, qword [rsp + 0x100]
lea rcx, [rsp + 0x128]
cmp qword [rsp + 0x140], 8
cmovae rcx, qword [rsp + 0x128]
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
call qword [0x1800d9688]
mov edi, r14d
mov ecx, 0x7abe
test eax, eax
cmove edi, ecx
jmp 0x18003bfd4
mov edi, 0x7abb
mov rsi, qword [rsp + 0x48]
jmp 0x18003bfd4
mov edi, 0x7abd
mov rsi, qword [rsp + 0x48]
jmp 0x18003bfd4
mov edi, 0x7ac5
jmp 0x18003bfd4
mov edi, 0x9c41
mov rbx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetLastError]
test rbx, rbx
je 0x18003bfe6
mov dword [rbx], edi
cmp dword [rsp + 0x50], 0
je 0x18003c012
lea rcx, [rsp + 0x100]
cmp qword [rsp + 0x118], 8
cmovae rcx, qword [rsp + 0x100]
mov edx, 1
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
cmp rsi, 0xffffffffffffffff
je 0x18003c021
mov rcx, rsi
call qword [0x1800d9668]
cmp r15, 0xffffffffffffffff
je 0x18003c030
mov rcx, r15
call qword [0x1800d9668]
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x18003c040
call qword [0x1800d9668]
mov rcx, qword [rsp + 0x80]
test rcx, rcx
je 0x18003c053
call qword [0x1800d9668]
lea rcx, [rsp + 0x128]
cmp qword [rsp + 0x140], 8
cmovae rcx, qword [rsp + 0x128]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x18003c0a2
shr eax, 4
not eax
and eax, 1
je 0x18003c0a2
lea rcx, [rsp + 0x128]
cmp qword [rsp + 0x140], 8
cmovae rcx, qword [rsp + 0x128]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test edi, edi
je 0x18003c1b9
cmp edi, 0x9c41
je 0x18003c1b9
mov rcx, qword [r13]
mov qword [r13], r13
mov qword [r13 + 8], r13
cmp rcx, r13
je 0x18003c0d7
mov rdi, qword [rcx]
call fcn.18007a7a4
mov rcx, rdi
cmp rdi, r13
jne 0x18003c0c7
mov rcx, r13
call fcn.18007a7a4
nop
mov rax, qword [rsp + 0x380]
mov rcx, qword [rax]
mov qword [rax], rax
mov rax, qword [rsp + 0x380]
mov qword [rax + 8], rax
mov qword [rsp + 0x388], r14
mov rax, qword [rsp + 0x380]
cmp rcx, rax
je 0x18003c128
nop
mov rdi, qword [rcx]
call fcn.18007a7a4
mov rcx, rdi
mov rax, qword [rsp + 0x380]
cmp rdi, rax
jne 0x18003c110
mov rcx, rax
call fcn.18007a7a4
cmp qword [rsp + 0x168], 8
jb 0x18003c148
mov rcx, qword [rsp + 0x150]
call fcn.18007a7a4
mov qword [rsp + 0x168], 7
mov qword [rsp + 0x160], r14
mov word [rsp + 0x150], r14w
cmp qword [rsp + 0x118], 8
jb 0x18003c17d
mov rcx, qword [rsp + 0x100]
call fcn.18007a7a4
mov qword [rsp + 0x118], 7
mov qword [rsp + 0x110], r14
mov word [rsp + 0x100], r14w
cmp qword [rsp + 0x140], 8
jb 0x18003c1b2
mov rcx, qword [rsp + 0x128]
call fcn.18007a7a4
xor eax, eax
jmp 0x18003c302
mov rcx, qword [r13]
mov qword [r13], r13
mov qword [r13 + 8], r13
cmp rcx, r13
je 0x18003c1e0
nop word [rax + rax]
mov rdi, qword [rcx]
call fcn.18007a7a4
mov rcx, rdi
cmp rdi, r13
jne 0x18003c1d0
mov rcx, r13
call fcn.18007a7a4
nop
mov rax, qword [rsp + 0x380]
mov rcx, qword [rax]
mov qword [rax], rax
mov rax, qword [rsp + 0x380]
mov qword [rax + 8], rax
mov qword [rsp + 0x388], r14
mov rax, qword [rsp + 0x380]
cmp rcx, rax
je 0x18003c230
mov rdi, qword [rcx]
call fcn.18007a7a4
mov rcx, rdi
mov rax, qword [rsp + 0x380]
cmp rdi, rax
jne 0x18003c218
mov rcx, rax
call fcn.18007a7a4
cmp qword [rsp + 0x168], 8
jb 0x18003c250
mov rcx, qword [rsp + 0x150]
call fcn.18007a7a4
mov qword [rsp + 0x168], 7
mov qword [rsp + 0x160], r14
mov word [rsp + 0x150], r14w
cmp qword [rsp + 0x118], 8
jb 0x18003c285
mov rcx, qword [rsp + 0x100]
call fcn.18007a7a4
mov qword [rsp + 0x118], 7
mov qword [rsp + 0x110], r14
mov word [rsp + 0x100], r14w
cmp qword [rsp + 0x140], 8
jb 0x18003c2ba
mov rcx, qword [rsp + 0x128]
call fcn.18007a7a4
mov eax, 1
jmp 0x18003c302
mov qword [rsp + 0x90], r14
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0xe8]
call fcn.18007aac4
lea rdx, vtable.std::bad_alloc.0
mov qword [rsp + 0xe8], rdx
lea rdx, [0x1800cc1e8]
lea rcx, [rsp + 0xe8]
call fcn.18007e92c
nop
mov rcx, qword [rsp + 0x3a0]
xor rcx, rsp
call fcn.18007a7c0
add rsp, 0x3b0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret