Function at 0x49745f
Capabilities:
Delete file
Get file size
Move file
Write file on windows

Disassembly:
sub esp, 0xc
push ebx
push ebp
mov ebp, dword [esp + 0x20]
mov ebx, ecx
push esi
push edi
lea edi, [ebx + 0xc]
mov ecx, dword [edi]
test ecx, ecx
je 0x497480
push dword [ebx + 0x18]
mov eax, dword [ecx]
push ebp
push 1
call dword [eax + 0xc]
mov ecx, edi
call fcn.004a1fd9
test al, al
je 0x497495
mov eax, 0xe0000008
jmp 0x49768c
mov esi, dword [esp + 0x2c]
test ebp, ebp
je 0x4974b7
cmp ebp, esi
jne 0x4974b7
mov ecx, dword [edi]
test ecx, ecx
je 0x4974b0
mov eax, dword [ecx]
push 0
push 1
call dword [eax + 0x10]
xor eax, eax
jmp 0x49768c
lea ecx, [ebx + 0x1c]
xor dl, dl
push 0
call fcn.00471150
mov ebp, eax
pop ecx
test ebp, ebp
je 0x4974dc
push 0
push ebp
push ecx
mov ecx, edi
call fcn.004a1fbd
mov eax, ebp
jmp 0x49768c
push esi
mov ecx, ebx
call fcn.00497856
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x497518
mov ecx, edi
call fcn.004a1fd9
test al, al
je 0x497500
mov esi, 0xe0000008
jmp 0x497683
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0
mov esi, eax
push esi
push ecx
mov ecx, edi
call fcn.004a1fbd
jmp 0x497683
mov ecx, dword [edi]
test esi, esi
je 0x497525
test ecx, ecx
je 0x497530
push esi
jmp 0x49752b
test ecx, ecx
je 0x497530
push 0
mov eax, dword [ecx]
call dword [eax + 0x1c]
and dword [esp + 0x2c], 0
lea ecx, [esp + 0x2c]
push 0xc800
call fcn.0044ea25
lea eax, [esp + 0x14]
mov ecx, ebx
push eax
push dword [ebx + 4]
call fcn.00497d3e
and dword [esp + 0x10], 0
mov esi, eax
test esi, esi
jne 0x49761a
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x4975ed
mov edx, 0xc800
cmp ecx, edx
mov eax, edx
cmovb eax, ecx
lea ecx, [esp + 0x10]
push ecx
push eax
push dword [esp + 0x34]
mov ecx, ebx
push dword [ebx + 4]
call fcn.00497ca2
mov esi, eax
test esi, esi
jne 0x49761a
cmp dword [esp + 0x10], eax
je 0x4975ed
push eax
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x18]
push dword [esp + 0x38]
push ebp
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x497696
mov ecx, dword [edi]
test ecx, ecx
je 0x4975c9
mov eax, dword [ecx]
push dword [esp + 0x18]
call dword [eax + 0x1c]
lea eax, [ebx + 0x38]
mov ecx, edi
push eax
call fcn.004a1ff0
mov ecx, edi
call fcn.004a1fd9
test al, al
je 0x497543
mov esi, 0xe0000008
jmp 0x497675
mov esi, dword [esp + 0x28]
test esi, esi
je 0x4976a0
push 0
push ebp
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, esi
jae 0x4976a0
cmp byte [ebx + 0x88], 0
jne 0x497643
mov esi, 0xe000000f
jmp 0x49766a
cmp esi, 0x2ee2
je 0x49763a
cmp esi, 0x2efe
je 0x49763a
cmp esi, 0x2eff
je 0x49763a
cmp esi, 0x2f83
jne 0x497662
cmp byte [ebx + 0x88], 0
je 0x497662
lea eax, [esp + 0x28]
mov ecx, ebx
push eax
push dword [esp + 0x28]
push ebp
push dword [esp + 0x2c]
call fcn.00497bfa
mov esi, eax
test esi, esi
je 0x497543
cmp esi, 0xe0000008
je 0x497675
push 0
push esi
push ecx
mov ecx, edi
call fcn.004a1fbd
push dword [esp + 0x2c]
call fcn.004d26a2
pop ecx
test ebp, ebp
je 0x49768a
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x49766a
test ebp, ebp
je 0x4976ad
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor ebp, ebp
push dword [ebx + 0x18]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push dword [ebx + 0x18]
push dword [ebx + 0x1c]
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
je 0x497696
mov ecx, dword [edi]
test ecx, ecx
je 0x4976d5
mov eax, dword [ecx]
push 0
push 1
call dword [eax + 0x10]
xor esi, esi
jmp 0x497675