Function at 0x4211a6
Capabilities:
Check if file exists
Delete file
Get file attributes
Move file
Set file attributes
Write file on windows

Disassembly:
push 0xa8
mov eax, 0x4c7ede
call fcn.0044d7c5
mov edi, ecx
xor ebx, ebx
cmp dword [edi + 0x20c], ebx
jle 0x4211c8
xor eax, eax
jmp 0x421477
lea ecx, [ebp - 0xb4]
call fcn.00410878
lea eax, [edi + 4]
push ebx
push eax
mov dword [ebp - 4], ebx
mov dword [ebp - 0x90], eax
call fcn.0041c2ff
add esp, 4
mov esi, eax
mov ecx, esp
mov dword [ebp - 0x80], esp
push esi
call fcn.0041217e
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0xb4]
call fcn.004184bd
push esi
mov byte [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x421224
test al, 1
je 0x421224
and eax, 0xfffffffe
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
cmp esi, ebx
je 0x42122f
push esi
call fcn.0044d8a0
pop ecx
push dword [ebp - 0x78]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x42125f
mov eax, dword [ebp - 0x78]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x80], esp
mov esi, esp
push eax
call fcn.0040f61d
pop ecx
add eax, 0x10
lea ecx, [ebp - 0xb4]
mov dword [esi], eax
call fcn.004202ac
mov eax, dword [ebp - 0x78]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x80], esp
mov esi, esp
push eax
mov dword [ebp - 0x98], ebx
call fcn.0040f61d
add eax, 0x10
pop ecx
mov dword [esi], eax
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0xb4]
call fcn.00420377
push ebx
push dword [ebp - 0x84]
mov byte [ebp - 4], 2
call fcn.0041c2b2
pop ecx
pop ecx
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x88], eax
call fcn.0041fa66
mov ecx, dword [edi + 0x210]
mov eax, dword [ecx]
lea edx, [ebp - 0x70]
push edx
mov byte [ebp - 4], 3
call dword [eax + 0x40]
cmp dword [ebp - 0x50], 0x10
mov eax, dword [ebp - 0x64]
jae 0x4212ce
lea eax, [ebp - 0x64]
push 0xfde9
push eax
call fcn.0041c2ff
mov dword [ebp - 0x94], eax
push eax
mov byte [ebp - 4], 4
call fcn.0044c78e
lea esi, [eax + eax + 4]
push esi
call fcn.0044a6f2
mov ebx, eax
mov dword [ebp - 0x80], ebx
push esi
push 0
push ebx
call fcn.0044d1b0
push 2
lea eax, [ebp - 0x9c]
push eax
push esi
push ebx
mov dword [ebp - 0x9c], 0xfeff
call fcn.0044b90b
lea eax, [esi - 2]
push eax
push dword [ebp - 0x94]
push eax
lea eax, [ebx + 2]
push eax
call fcn.0044b90b
xor eax, eax
add esp, 0x3c
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x74], eax
mov byte [ebp - 4], 6
cmp dword [edi + 0x22c], eax
je 0x421372
lea eax, [ebp - 0x8c]
push eax
push esi
push ebx
add edi, 0x230
push edi
call fcn.0041e8bd
add esp, 0x10
push eax
lea ecx, [ebp - 0x74]
call fcn.0041dba9
mov edi, dword [ebp - 0x8c]
jmp 0x421394
lea edi, [esi - 1]
push edi
call fcn.0044a6f2
pop ecx
push eax
lea ecx, [ebp - 0x74]
call fcn.0041dba9
dec esi
push esi
push ebx
push edi
push dword [ebp - 0x74]
call fcn.0044b90b
add esp, 0x10
mov ebx, dword [ebp - 0x88]
push 0x4d0a18
lea eax, [ebp - 0x7c]
push ebx
xor esi, esi
push eax
mov dword [ebp - 0x7c], esi
call fcn.0044ef60
add esp, 0xc
test eax, eax
jne 0x42140a
cmp dword [ebp - 0x7c], esi
je 0x42140a
push dword [ebp - 0x7c]
push 1
push edi
push dword [ebp - 0x74]
call fcn.0044e454
push dword [ebp - 0x7c]
call fcn.0044e8c5
add esp, 0x14
push ecx
mov ecx, esp
mov dword [ebp - 0x88], esp
push dword [ebp - 0x90]
call fcn.00411928
call fcn.0041f58d
pop ecx
test eax, eax
jne 0x4213f7
inc esi
cmp esi, 0xa
jl 0x4213d3
push dword [ebp - 0x90]
push ebx
call dword [sym.imp.KERNEL32.dll_MoveFileA]
mov dword [ebp - 0x98], eax
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test ebx, ebx
je 0x42141c
push ebx
call fcn.0044d8a0
pop ecx
lea ecx, [ebp - 0x74]
call fcn.0041db8c
lea ecx, [ebp - 0x80]
call fcn.0041db8c
lea ecx, [ebp - 0x94]
call fcn.0041dbe1
lea ecx, [ebp - 0x70]
call fcn.0041e88e
mov ecx, dword [ebp - 0x84]
add ecx, 0xfffffff0
call fcn.0040f083
mov ecx, dword [ebp - 0x78]
add ecx, 0xfffffff0
call fcn.0040f083
lea ecx, [ebp - 0xb4]
call fcn.00410276
mov ecx, dword [ebp - 0xa4]
add ecx, 0xfffffff0
call fcn.0040f083
mov eax, dword [ebp - 0x98]
call fcn.0044d848
ret