Function at 0x131493f0
Capabilities:
Delete file
Get file size
Read file on windows
Set file attributes
Write file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd4
push ebx
push esi
push edi
mov ebx, ecx
mov dword [ebp - 4], edx
mov edi, eax
mov byte [ebp - 5], 0
cmp dword [0x1314ee68], 0xffffffff
je 0x13149617
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
push 0
mov eax, dword [0x1314ee68]
push eax
call sub.KERNEL32.DLL_GetFileSize
xor edx, edx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], 0
jne 0x13149442
cmp dword [ebp - 0x18], 0
jbe 0x13149450
jmp 0x13149444
jle 0x13149450
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jne 0x13149461
cmp dword [ebp - 0x28], 0
ja 0x13149467
jmp 0x13149617
jle 0x13149617
call fcn.1314725c
cdq
mov dword [0x1314c120], eax
mov dword [0x1314c124], edx
mov eax, dword [0x1314c120]
mov edx, dword [0x1314c124]
cmp edx, dword [ebp - 0x24]
jne 0x13149491
cmp eax, dword [ebp - 0x28]
jbe 0x131494b0
jmp 0x13149493
jle 0x131494b0
mov dword [0x1314c120], 0
mov dword [0x1314c124], 0
xor eax, eax
call fcn.131472dc
jmp 0x131494ca
mov eax, dword [0x1314c120]
mov edx, dword [0x1314c124]
cmp edx, dword [ebp - 0x24]
jne 0x131494ca
cmp eax, dword [ebp - 0x28]
je 0x13149617
cmp dword [0x1314c0bc], 0
je 0x13149617
push 0
push 0
mov eax, dword [0x1314d684]
push eax
mov eax, dword [0x1314c0bc]
push eax
call sub.user32.dll_SendMessageA
push 0
push 0
mov eax, dword [0x1314c120]
push eax
mov eax, dword [0x1314ee68]
push eax
call sub.KERNEL32.DLL_SetFilePointer
push 4
push 0x1000
mov esi, dword [ebp - 0x28]
mov eax, esi
sub eax, dword [0x1314c120]
push eax
push 0
call sub.KERNEL32.DLL_VirtualAlloc
mov dword [ebp - 0xc], eax
push 0
lea eax, [ebp - 0x1c]
push eax
sub esi, dword [0x1314c120]
push esi
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x1314ee68]
push eax
call sub.KERNEL32.DLL_ReadFile
push 2
push 0
push 0
mov eax, dword [0x1314ee68]
push eax
call sub.KERNEL32.DLL_SetFilePointer
push 0
push 0
mov eax, dword [0x1314d688]
push eax
mov eax, dword [0x1314c0bc]
push eax
call sub.user32.dll_SendMessageA
push 0x80
push ebx
call sub.KERNEL32.DLL_SetFileAttributesW
push ebx
call sub.KERNEL32.DLL_DeleteFileW
push 0
push 0
push 2
push 0
push 0
push 0x40000000
push ebx
call sub.KERNEL32.DLL_CreateFileW
mov esi, eax
cmp esi, 0xffffffff
je 0x131495d0
mov byte [ebp - 0x2a], 0xff
mov byte [ebp - 0x29], 0xfe
push 0
lea eax, [ebp - 0x1c]
push eax
push 2
lea eax, [ebp - 0x2a]
push eax
push esi
call sub.KERNEL32.DLL_WriteFile
lea eax, [ebp - 0x1c]
push eax
push 0
mov ecx, dword [ebp - 0x28]
sub ecx, dword [0x1314c120]
mov edx, dword [ebp - 0xc]
mov eax, esi
call fcn.13147164
push 0x8000
push 0
lea eax, [ebp - 0xc]
push eax
call sub.KERNEL32.DLL_VirtualFree
push esi
call sub.KERNEL32.DLL_CloseHandle
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
mov ecx, ebx
mov edx, dword [ebp - 4]
mov eax, edi
call fcn.13149918
mov byte [ebp - 5], al
cmp byte [ebp - 5], 1
jne 0x13149611
mov eax, dword [ebp - 0x28]
mov dword [0x1314c120], eax
mov eax, dword [ebp - 0x24]
mov dword [0x1314c124], eax
mov eax, dword [ebp - 0x28]
call fcn.131472dc
push ebx
call sub.KERNEL32.DLL_DeleteFileW
mov al, byte [ebp - 5]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc