Function at 0x471bf0
Capabilities:
Check if file exists
Delete directory
Delete file
Get file attributes

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
cmp edx, 3
mov r14, rcx
mov rbx, r8
jne 0x471e50
test r8, r8
mov qword [rsp + 0x40], 0
je 0x471f10
mov rdx, qword [0x006d08f0]
mov ecx, 0x40
call fcn.006705b0
test rax, rax
je 0x4721e0
lea rdx, [rax + 0x18]
xor r10d, r10d
mov dword [rax], 0
mov qword [rax + 0x10], 0
mov word [rax + 0x18], r10w
mov qword [rax + 8], rdx
mov dword [rax + 0x28], 0
mov dword [rax + 0x2c], 0xffff
mov dword [rax + 0x30], 0
mov dword [rax + 0x34], 0xffff
mov qword [rax + 0x38], 0
mov qword [rsp + 0x50], rax
lock add dword [rax], 1
cmp qword [rsp + 0x50], 0
je 0x4721e0
lea rcx, [rsp + 0x50]
mov r8, rbx
mov rdx, r14
call fcn.00471390
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x40]
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x40], rsi
test rdi, rdi
je 0x471ce2
lock sub dword [rdi], 1
je 0x472160
mov rsi, qword [rsp + 0x50]
test rsi, rsi
je 0x471cdd
lock sub dword [rsi], 1
je 0x4721a0
mov rsi, qword [rsp + 0x40]
mov r9d, dword [rbx]
test r9d, r9d
jne 0x471f03
lea rax, [rsp + 0x50]
mov r13, qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
lea r12, [0x0072da48]
lea r15, [0x006d1310]
xor edi, edi
mov qword [rsp + 0x28], rax
nop
mov rax, qword [r12]
cmp rax, rsi
je 0x472050
test rsi, rsi
je 0x471e35
test rax, rax
je 0x471df3
lea rbp, [rsi + 8]
mov rcx, qword [rsi + 8]
call r13
cmp eax, 0xffffffff
mov esi, eax
je 0x471ed0
test rbx, rbx
je 0x471d58
mov dword [rbx], 0
mov byte [rbx + 4], 0
mov qword [rbx + 8], r15
test esi, 0x400
jne 0x471ea4
xor edx, edx
and esi, 0x10
setne dl
add edx, 2
test rbx, rbx
je 0x471d7e
mov ecx, dword [rbx]
test ecx, ecx
jne 0x472040
mov rax, qword [rsp + 0x40]
mov r8, rbx
lea rcx, [rax + 8]
call fcn.00471bf0
add rdi, rax
test rbx, rbx
je 0x471da1
mov edx, dword [rbx]
test edx, edx
jne 0x472040
lea rcx, [rsp + 0x40]
mov rdx, rbx
call fcn.00470ac0
test rbx, rbx
mov rsi, qword [rsp + 0x40]
je 0x471d10
mov eax, dword [rbx]
test eax, eax
je 0x471d10
nop word cs:[rax + rax]
test rsi, rsi
je 0x471ddf
lock sub dword [rsi], 1
je 0x4720e0
mov rax, rdi
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp qword [rsi + 0x38], 0
jne 0x471d2f
lock sub dword [rsi], 1
je 0x472120
mov rcx, qword [r14]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
je 0x472060
test rbx, rbx
je 0x471e9b
lea rax, [0x006d1310]
mov dword [rbx], 0
mov byte [rbx + 4], 0
mov qword [rbx + 8], rax
jmp 0x471e9b
test rax, rax
je 0x471d2f
cmp qword [rax + 0x38], 0
jne 0x471d2f
jmp 0x471e08
cmp edx, 1
je 0x471ef0
and edx, 0xfffffff7
mov rcx, qword [rcx]
cmp edx, 3
je 0x4720d4
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x471fc0
test rbx, rbx
mov edi, 1
je 0x471ddf
lea rax, [0x006d1310]
mov dword [rbx], 0
mov byte [rbx + 4], 0
xor edi, edi
mov qword [rbx + 8], rax
add rdi, 1
jmp 0x471ddf
mov rcx, rbp
call fcn.0046c0a0
test al, al
mov edx, 9
je 0x471d6f
and esi, 0x10
cmp esi, 1
sbb edx, edx
and edx, 0xfffffff9
add edx, 0xb
jmp 0x471d6f
mov rcx, qword [rsp + 0x28]
mov r8, rbx
mov rdx, rbp
call fcn.0046cab0
mov edx, dword [rsp + 0x50]
jmp 0x471d6f
test r8, r8
mov edi, 1
jne 0x471e84
jmp 0x471ddf
xor edi, edi
jmp 0x471dd0
mov ecx, 0x40
call fcn.00670540
lea rdx, [rax + 0x18]
xor r8d, r8d
mov dword [rax], 0
mov qword [rax + 0x10], 0
mov word [rax + 0x18], r8w
mov qword [rax + 8], rdx
mov dword [rax + 0x28], 0
mov dword [rax + 0x2c], 0xffff
mov dword [rax + 0x30], 0
mov dword [rax + 0x34], 0xffff
mov qword [rax + 0x38], 0
mov qword [rsp + 0x48], rax
lock add dword [rax], 1
xor r8d, r8d
lea rcx, [rsp + 0x48]
mov rdx, r14
call fcn.00471390
mov rdi, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
mov qword [rsp + 0x48], 0
test rdi, rdi
mov qword [rsp + 0x40], rsi
je 0x471cee
lock sub dword [rdi], 1
je 0x472240
mov rsi, qword [rsp + 0x48]
test rsi, rsi
je 0x471fb4
lock sub dword [rsi], 1
je 0x472200
mov rsi, qword [rsp + 0x40]
jmp 0x471cee
mov rsi, qword [sym.imp.KERNEL32.dll_GetLastError]
call rsi
xor edx, edx
cmp eax, 0x35
jbe 0x472022
cmp eax, 0x7b
je 0x471e76
test dl, dl
jne 0x471e76
cmp eax, 0x57
je 0x471e76
cmp eax, 0xa1
je 0x471e76
call rsi
test eax, eax
mov esi, eax
je 0x471e76
test rbx, rbx
je 0x472336
mov dword [rbx], eax
lea rax, [0x006d1310]
mov byte [rbx + 4], 1
xor edi, edi
mov qword [rbx + 8], rax
jmp 0x471ddf
movabs rdx, 0x2000000020800c
mov ecx, eax
shr rdx, cl
and edx, 1
jmp 0x471fd0
mov rsi, qword [rsp + 0x40]
jmp 0x471dd0
test rsi, rsi
je 0x471e08
jmp 0x471dfe
mov rsi, qword [sym.imp.KERNEL32.dll_GetLastError]
call rsi
xor edx, edx
cmp eax, 0x35
jbe 0x4720c0
cmp eax, 0x7b
je 0x471e19
test dl, dl
jne 0x471e19
cmp eax, 0x57
je 0x471e19
cmp eax, 0xa1
je 0x471e19
call rsi
test eax, eax
mov esi, eax
je 0x471e19
test rbx, rbx
je 0x4722a9
mov dword [rbx], eax
lea rax, [0x006d1310]
mov byte [rbx + 4], 1
mov qword [rbx + 8], rax
jmp 0x471ddf
movabs rdx, 0x2000000020800c
mov ecx, eax
shr rdx, cl
and edx, 1
jmp 0x472070
xor edi, edi
jmp 0x471e0b
mov rcx, qword [rsi + 0x38]
test rcx, rcx
je 0x4720f7
call qword [sym.imp.KERNEL32.dll_FindClose]
mov qword [rsi + 0x38], 0
mov rcx, qword [rsi + 8]
lea rax, [rsi + 0x18]
cmp rcx, rax
je 0x472109
call fcn.00670500
mov edx, 0x40
mov rcx, rsi
call fcn.00670510
jmp 0x471ddf
mov rcx, qword [rsi + 0x38]
test rcx, rcx
je 0x472137
call qword [sym.imp.KERNEL32.dll_FindClose]
mov qword [rsi + 0x38], 0
mov rcx, qword [rsi + 8]
lea rax, [rsi + 0x18]
cmp rcx, rax
je 0x472149
call fcn.00670500
mov edx, 0x40
mov rcx, rsi
call fcn.00670510
jmp 0x471e08
mov rcx, qword [rdi + 0x38]
test rcx, rcx
je 0x472177
call qword [sym.imp.KERNEL32.dll_FindClose]
mov qword [rdi + 0x38], 0
mov rcx, qword [rdi + 8]
lea rax, [rdi + 0x18]
cmp rcx, rax
je 0x472189
call fcn.00670500
mov edx, 0x40
mov rcx, rdi
call fcn.00670510
jmp 0x471cc9
mov rcx, qword [rsi + 0x38]
test rcx, rcx
je 0x4721b7
call qword [sym.imp.KERNEL32.dll_FindClose]
mov qword [rsi + 0x38], 0
mov rcx, qword [rsi + 8]
lea rax, [rsi + 0x18]
cmp rcx, rax
je 0x4721c9
call fcn.00670500
mov edx, 0x40
mov rcx, rsi
call fcn.00670510
jmp 0x471cdd
lea rax, [0x006d1320]
mov dword [rbx], 0xc
mov byte [rbx + 4], 1
xor esi, esi
mov qword [rbx + 8], rax
jmp 0x471ca7
mov rcx, qword [rsi + 0x38]
test rcx, rcx
je 0x472217
call qword [sym.imp.KERNEL32.dll_FindClose]
mov qword [rsi + 0x38], 0
mov rcx, qword [rsi + 8]
lea rax, [rsi + 0x18]
cmp rcx, rax
je 0x472229
call fcn.00670500
mov edx, 0x40
mov rcx, rsi
call fcn.00670510
jmp 0x471fb4
mov rcx, qword [rdi + 0x38]
test rcx, rcx
je 0x472257
call qword [sym.imp.KERNEL32.dll_FindClose]
mov qword [rdi + 0x38], 0
mov rcx, qword [rdi + 8]
lea rax, [rdi + 0x18]
cmp rcx, rax
je 0x472269
call fcn.00670500
mov edx, 0x40
mov rcx, rdi
call fcn.00670510
jmp 0x471fa0
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x47229c
call fcn.005ab100
mov rcx, rbx
call fcn.0058e700
mov rbx, rax
jmp 0x47228d
mov ecx, 0x48
mov ebx, esi
lea rsi, [rsp + 0x50]
call fcn.00670680
lea rdx, str.boost::filesystem::remove
mov rdi, rax
mov rcx, rsi
movabs rax, 0x100000000
or rbx, rax
call fcn.0046c220
lea rax, [0x006d1310]
lea r9, [rsp + 0x30]
mov rdx, rsi
mov rcx, rdi
mov r8, r14
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], rax
add rsi, 0x10
call fcn.005a8f70
mov rcx, qword [rsp + 0x50]
cmp rcx, rsi
je 0x472310
call fcn.00670500
lea r8, [0x005a9500]
lea rdx, [0x006d32e0]
mov rcx, rdi
call fcn.00670ef0
mov rcx, rdi
mov rbx, rax
call fcn.00670a50
jmp 0x47229c
mov ecx, 0x48
mov ebx, esi
lea rsi, [rsp + 0x50]
call fcn.00670680
lea rdx, str.boost::filesystem::remove
mov rdi, rax
mov rcx, rsi
movabs rax, 0x100000000
or rbx, rax
call fcn.0046c220
jmp 0x4722d9