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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
mov eax, dword [0x4c07e0]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
mov dword [ebp - 0x40], 0
mov ecx, dword [esi + 0xb94]
cmp ecx, 0xffffffff
je 0x455375
cmp dword [esi + 0xc40], 2
jne 0x455359
mov eax, dword [esi + 0xc30]
push edi
push 0
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x38]
push eax
push dword [esi + 0xc2c]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push dword [esi + 0xb94]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
push dword [esi + 0xc24]
lea eax, [ebp - 0x48]
push eax
call fcn.00414d90
push dword [esi + 0xc28]
lea eax, [ebp - 0x50]
push eax
call fcn.00414d90
add esp, 0x10
lea eax, [ebp - 0x50]
xor ecx, ecx
cmp dword [esi + 0xc28], ecx
cmove eax, ecx
cmp dword [esi + 0xc24], ecx
push eax
push ecx
lea eax, [ebp - 0x48]
cmove eax, ecx
push eax
push dword [esi + 0xb94]
call dword [sym.imp.KERNEL32.dll_SetFileTime]
lea eax, [ebp - 0x40]
push eax
push dword [esi + 0xb94]
call dword [sym.imp.KERNEL32.dll_GetFileSize]
lea edi, [esi + 0x72c]
test edi, edi
je 0x455358
mov ecx, dword [esi + 0x1448]
call fcn.00430260
push eax
push edi
push str.Successfully_downloaded_file__s__from__s
push 1
lea ecx, [ebp - 0x39]
call fcn.00407110
push eax
call fcn.0044f120
add esp, 0x14
pop edi
mov eax, dword [esi + 0xb94]
cmp eax, 0xffffffff
je 0x455375
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0xb94], 0xffffffff
mov eax, dword [esi + 0xb98]
cmp eax, 0xffffffff
je 0x4554ae
push 0
push 0
push 0
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [ebp - 0x38]
mov dword [ebp - 0x44], 0xfffffefe
push eax
push 4
lea eax, [ebp - 0x44]
mov dword [ebp - 0x4c], 0x101
push eax
push dword [esi + 0xb98]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push 0
lea eax, [ebp - 0x38]
push eax
push 4
lea eax, [ebp - 0x4c]
push eax
push dword [esi + 0xb98]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push 0
lea eax, [ebp - 0x38]
push eax
push 4
lea eax, [esi + 0xc2c]
push eax
push dword [esi + 0xb98]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push 0
lea eax, [ebp - 0x38]
push eax
push 4
lea eax, [esi + 0xc30]
push eax
push dword [esi + 0xb98]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push 0
lea eax, [ebp - 0x38]
push eax
push 0x14
lea eax, [esi + 0xbfc]
push eax
push dword [esi + 0xb98]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, dword [esi + 0xbf8]
test ecx, ecx
je 0x45544a
push 0
lea eax, [ebp - 0x38]
push eax
mov eax, dword [esi + 0xc10]
add eax, 7
shr eax, 3
push eax
push ecx
push dword [esi + 0xb98]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push 0x30
lea eax, [ebp - 0x34]
push 0
push eax
call fcn.00466b60
mov ecx, dword [esi + 0x1448]
add esp, 0xc
call fcn.00430260
push eax
lea eax, [ebp - 0x34]
push 0x30
push eax
call fcn.0046b5c5
add esp, 0xc
lea eax, [ebp - 0x38]
push 0
push eax
push 0x2f
lea eax, [ebp - 0x34]
push eax
push dword [esi + 0xb98]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push dword [esi + 0xb98]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
push dword [esi + 0xb98]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0xb98], 0xffffffff
cmp dword [esi + 0xc40], 2
jne 0x4554c4
lea eax, [esi + 0x52c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ecx, dword [ebp - 4]
mov byte [esi + 0x52b], 0
xor ecx, ebp
pop esi
call fcn.00464e2f
mov esp, ebp
pop ebp
ret