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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x44
mov eax, dword [0x49c3bc]
mov cl, byte [ebp + 0xc]
mov esi, str.DeleteFile.NonRecursive
mov edi, dword [ebp + 8]
lea ebx, [ebp - 0x2c]
xor eax, ebp
test cl, cl
mov dword [ebp - 0x10], eax
mov eax, str.DeleteFile.Recursive
cmovne esi, eax
mov eax, ecx
xor al, 1
movzx eax, al
lea eax, [eax + eax*2 + 0x14]
mov dword [ebp - 0x50], eax
push 0x168
push str..._.._base_files_file_util_win.cc
push 0x4833f0
push ebx
call fcn.0042e090
add esp, 0x10
lea ecx, [ebp - 0x44]
push 0
push ebx
call fcn.0042e320
push 0x125
push str..._.._base_files_file_util_win.cc
push str.DoDeleteFile
push ebx
call fcn.0042e090
add esp, 0x10
lea ecx, [ebp - 0x1c]
push 0
push ebx
call fcn.0042e320
movzx ecx, byte [edi + 0xb]
mov eax, dword [edi + 4]
mov edi, 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x4c], esi
test cl, cl
mov edx, ecx
cmovs edx, eax
test edx, edx
je 0x4222f9
test cl, cl
jns 0x422188
mov edi, 0xa1
cmp eax, 0x103
ja 0x4222f9
mov ecx, dword [ebp + 8]
push ebx
call fcn.004215c0
movzx eax, byte [ebp - 0x21]
test al, al
jns 0x42219f
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x2c]
mov esi, 0xffffffff
test eax, eax
je 0x4221d3
add eax, eax
mov ecx, ebx
nop dword [eax]
movzx edx, word [ecx]
cmp dx, 0x3f
je 0x4221c9
cmp dx, 0x2a
je 0x4221c9
add ecx, 2
add eax, 0xfffffffe
jne 0x4221b0
jmp 0x4221d3
test eax, eax
je 0x4221d3
sub ecx, ebx
sar ecx, 1
mov esi, ecx
lea ebx, [ebp - 0x2c]
mov ecx, ebx
call fcn.00420c10
cmp esi, 0xffffffff
je 0x422223
mov esi, dword [ebp + 8]
mov ecx, esi
push ebx
call fcn.004215c0
lea edi, [ebp - 0x38]
mov ecx, esi
push edi
call fcn.00421460
movzx eax, byte [ebp + 0xc]
mov esi, edi
mov ecx, edi
mov edx, ebx
push eax
call fcn.00422d30
add esp, 4
mov ecx, esi
mov edi, eax
call fcn.00420c10
mov ecx, ebx
call fcn.00420c10
mov esi, dword [ebp - 0x4c]
jmp 0x4222f9
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 0x4c]
cmp byte [eax + 0xb], 0
jns 0x422234
mov eax, dword [ebp + 8]
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4222e6
mov ebx, eax
test bl, 1
je 0x42226a
mov ecx, dword [ebp + 8]
mov eax, ebx
and eax, 0xfffffffe
cmp byte [ecx + 0xb], 0
jns 0x42225e
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
je 0x4222e6
test bl, 0x10
jne 0x422286
mov eax, dword [ebp + 8]
cmp byte [eax + 0xb], 0
jns 0x42227d
mov eax, dword [ebp + 8]
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x4222dd
cmp byte [ebp + 0xc], 0
je 0x4222c8
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x24], 0x1000000
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x2c], 0x2a
lea edx, [ebp - 0x2c]
push 1
call fcn.00422d30
add esp, 4
cmp byte [ebp - 0x21], 0
mov edi, eax
jns 0x4222c4
push dword [ebp - 0x2c]
call fcn.004591e8
add esp, 4
test edi, edi
jne 0x4222f9
mov eax, dword [ebp + 8]
cmp byte [eax + 0xb], 0
jns 0x4222d6
mov eax, dword [ebp + 8]
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
mov edi, 0
jne 0x4222f9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
xor edi, edi
or ecx, 1
cmp ecx, 3
cmovne edi, eax
lea ebx, [ebp - 0x1c]
mov ecx, ebx
call fcn.0042e410
mov eax, dword [ebp - 0x50]
test edi, edi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], eax
je 0x42236e
mov eax, dword [ebp + 8]
cmp byte [eax + 0xb], 0
jns 0x42231e
mov eax, dword [ebp + 8]
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x42234f
test al, 0x10
mov dword [ebp - 0x48], 7
je 0x42236e
push dword [ebp + 8]
call fcn.0042f1e0
add esp, 4
movzx eax, al
mov ecx, 6
sub ecx, eax
mov dword [ebp - 0x48], ecx
jmp 0x42236e
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 2]
mov dword [ebp - 0x48], 4
cmp ecx, 4
jae 0x42236e
mov eax, dword [eax*4 + 0x483488]
mov dword [ebp - 0x48], eax
push 0x20
call fcn.00459168
add esp, 4
lea esi, [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], 0x80000020
mov dword [eax + 0x17], 0x2e657461
mov dword [ebp - 0x28], 0x1b
mov dword [eax + 0x14], 0x6174536e
mov dword [eax + 0x10], 0x6f697461
mov dword [eax + 0xc], 0x7265704f
mov dword [eax + 8], 0x74736f50
mov dword [eax + 4], 0x2e73776f
mov dword [eax], 0x646e6957
mov byte [eax + 0x1b], 0
push esi
push ebx
call fcn.0042e6b0
add esp, 8
push 8
push dword [ebp - 0x48]
push esi
call fcn.004251e0
add esp, 0xc
cmp byte [ebp - 0x21], 0
js 0x422467
test edi, edi
je 0x42247a
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x18], eax
push 0x20
call fcn.00459168
add esp, 4
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], 0x80000020
mov dword [ebp - 0x28], 0x18
mov dword [eax + 0x14], 0x2e726f72
mov dword [eax + 0x10], 0x72456d65
mov dword [eax + 0xc], 0x74737973
mov dword [eax + 8], 0x656c6946
mov dword [eax + 4], 0x2e73776f
mov dword [eax], 0x646e6957
mov byte [eax + 0x18], 0
push esi
push ebx
call fcn.0042e6b0
add esp, 8
push edi
push esi
call fcn.00425270
add esp, 8
cmp byte [ebp - 0x21], 0
jns 0x422463
push dword [ebp - 0x2c]
call fcn.004591e8
add esp, 4
xor ebx, ebx
jmp 0x42247c
push dword [ebp - 0x2c]
call fcn.004591e8
add esp, 4
test edi, edi
jne 0x4223ea
mov bl, 1
lea ecx, [ebp - 0x44]
call fcn.0042e410
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00459221
mov eax, ebx
add esp, 0x44
pop esi
pop edi
pop ebx
pop ebp
ret