Function at 0x4032d0
Capabilities:
Check if file exists
Copy file
Delete file
Get file size
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x240
mov eax, dword [0x41e014]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x218], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x23c], ebx
mov dword [ebp - 0x240], eax
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
test esi, esi
je 0x403353
push 0x20a
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00404e70
lea eax, [ebp - 0x210]
push eax
push dword [ebp - 0x218]
call fcn.00401ee0
push eax
call fcn.00402030
add esp, 0x18
push 0
push dword [ebp - 0x218]
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x40368f
mov esi, dword [ebx]
xor ecx, ecx
mov dword [ebp - 0x228], ecx
mov eax, 0x2aaaaaab
mov ecx, dword [ebx + 4]
sub ecx, esi
mov dword [ebp - 0x224], 0x1000
imul ecx
mov dword [ebp - 0x220], 0
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x4034b4
xor eax, eax
mov dword [ebp - 0x214], eax
jmp 0x4033a6
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
add eax, esi
cmp dword [eax + 0x14], 8
jb 0x4033b0
mov eax, dword [eax]
push 0
push 0
push 3
push 0
push 0
push 8
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x4033f6
lea eax, [ebp - 0x230]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x4033f6
mov edi, dword [ebp - 0x230]
mov ebx, dword [ebp - 0x22c]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x21c], eax
jmp 0x40341a
call edi
mov dword [ebp - 0x21c], eax
xorps xmm0, xmm0
movlpd qword [ebp - 0x238], xmm0
mov ebx, dword [ebp - 0x234]
mov edi, dword [ebp - 0x238]
cmp esi, 0xffffffff
je 0x403427
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
add edi, 0xfff
mov eax, 0x2aaaaaab
adc ebx, 0
and edi, 0xfffff000
add edi, 0x1000
adc ebx, 0
add dword [ebp - 0x224], edi
mov edi, dword [ebp - 0x220]
adc edi, ebx
mov ebx, dword [ebp - 0x23c]
inc dword [ebp - 0x228]
add dword [ebp - 0x214], 0x18
mov dword [ebp - 0x220], edi
mov ecx, dword [ebx + 4]
mov esi, dword [ebx]
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x228], eax
mov eax, dword [ebp - 0x214]
jb 0x4033a0
test edi, edi
jg 0x4035a8
mov eax, dword [ebp - 0x224]
jl 0x4034b9
cmp eax, 0x8000
jae 0x4035a8
jmp 0x4034b9
mov eax, 0x1000
mov edi, 0x8000
sub edi, eax
push edi
call fcn.00406d70
add esp, 4
mov dword [ebp - 0x21c], eax
test eax, eax
je 0x4035a8
mov dword [ebp - 0x220], 0
test edi, edi
je 0x403583
push 0
push 0
push 3
push 0
push 3
push 0x40000000
push dword [ebp - 0x218]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x40356d
push 2
push 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x230], xmm0
push dword [ebp - 0x22c]
push dword [ebp - 0x230]
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
cmp eax, 0xffffffff
je 0x40356d
push 0
lea eax, [ebp - 0x220]
push eax
push edi
push dword [ebp - 0x21c]
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x40355c
cmp edi, dword [ebp - 0x220]
jne 0x40355c
push esi
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
mov edi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x403593
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
cmp esi, 0xffffffff
je 0x403593
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x403593
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
push dword [ebp - 0x21c]
call fcn.00406d6b
add esp, 4
mov edi, dword [ebx]
xor ecx, ecx
mov dword [ebp - 0x214], ecx
mov eax, 0x2aaaaaab
mov ecx, dword [ebx + 4]
sub ecx, edi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x40366f
xor esi, esi
push 0x20a
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00404e70
lea eax, [esi + edi]
add esp, 0xc
cmp dword [eax + 0x14], 8
jb 0x4035f1
mov eax, dword [eax]
lea ecx, [ebp - 0x210]
push ecx
push eax
call fcn.00401d70
mov eax, dword [ebx]
add esp, 8
add eax, esi
cmp dword [eax + 0x14], 8
jb 0x40360d
mov eax, dword [eax]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4036b9
mov eax, dword [ebx]
add eax, esi
cmp dword [eax + 0x14], 8
jb 0x403628
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x210]
push eax
push dword [ebp - 0x218]
call fcn.004014e0
add esp, 0xc
test eax, eax
je 0x403689
mov ecx, dword [ebx + 4]
mov eax, 0x2aaaaaab
mov edi, dword [ebx]
add esi, 0x18
inc dword [ebp - 0x214]
sub ecx, edi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x214], eax
jb 0x4035d0
push 0
push dword [ebp - 0x240]
push dword [ebp - 0x218]
call fcn.004014e0
add esp, 0xc
test eax, eax
jne 0x4036c3
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
push dword [ebp - 0x218]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00403bfd
mov esp, ebp
pop ebp
ret
push 2
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x403689
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00403bfd
mov esp, ebp
pop ebp
ret