Function at 0x45d88a
Capabilities:
Delete file
Get file size
Move file
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
and dword [esp + 0xc], 0
push ebx
push esi
push edi
mov edi, eax
lea eax, [esp + 0x18]
push eax
mov eax, edi
call fcn.0045d677
test eax, eax
jne 0x45d8e3
lea eax, [esp + 0x20]
push eax
lea esi, [edi + 0x24]
push esi
call fcn.0045ea53
mov ebx, eax
test ebx, ebx
je 0x45d8ea
push ebx
mov eax, edi
call fcn.0045e929
mov esi, ebx
push 0
push dword [esp + 0x1c]
call dword [sym.imp.WININET.dll_InternetSetStatusCallbackW]
push dword [esp + 0x18]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [edi + 0x1c]
push ecx
lea ecx, [esp + 0x10]
push esi
lea eax, [edi + 0x20]
push ecx
call fcn.004601fe
mov eax, dword [esp + 0x18]
add esp, 0xc
cmp dword [eax - 0xc], 0
jne 0x45d927
mov eax, 0xe0000005
mov dword [edi + 0x10], eax
push eax
mov eax, edi
call fcn.0045e929
mov esi, dword [edi + 0x10]
lea ecx, [esp + 0xc]
call fcn.00403d84
jmp 0x45d8cb
lea eax, [esp + 0xc]
push eax
lea eax, [esp + 0x14]
push eax
call fcn.00419e44
push str..part
lea eax, [esp + 0x14]
push eax
call fcn.004341c7
xor ecx, ecx
inc ecx
mov eax, edi
call fcn.0045e8af
and dword [esp + 0x14], 0
cmp byte [edi + 0x40], 0
je 0x45d969
lea eax, [esp + 0x10]
push eax
call fcn.0044acf0
pop ecx
mov dword [esp + 0x14], eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x20]
mov eax, dword [edi + 0x78]
mov ecx, edi
call fcn.0045dd4a
mov esi, eax
mov eax, edi
call fcn.0045e8d5
test al, al
je 0x45d9aa
lea ecx, [esp + 0x10]
call fcn.00403d84
lea ecx, [esp + 0xc]
call fcn.00403d84
mov esi, 0xe0000008
jmp 0x45d8cb
test esi, esi
je 0x45d9cc
cmp esi, 0xe0000013
je 0x45d9be
push esi
mov eax, edi
call fcn.0045e929
lea ecx, [esp + 0x10]
call fcn.00403d84
jmp 0x45d91c
mov ecx, dword [edi + 0x14]
mov ebx, dword [edi + 8]
mov eax, dword [edi]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edi
test ecx, ecx
je 0x45d9f2
push dword [esp + 0xc]
mov eax, dword [ecx]
push esi
call dword [eax + 4]
mov eax, edi
call fcn.0045e8d5
test al, al
je 0x45da2a
lea edi, [esp + 0x38]
call fcn.0045ef78
test ebx, ebx
je 0x45da11
push ebx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
lea ecx, [esp + 0x10]
call fcn.00403d84
lea ecx, [esp + 0xc]
call fcn.00403d84
xor esi, esi
jmp 0x45d8cb
test esi, esi
jbe 0x45da44
cmp esi, dword [esp + 0x14]
jne 0x45da44
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x45d9fd
mov eax, dword [ecx]
push 1
call dword [eax + 8]
jmp 0x45d9fd
push 0
push 0
lea ecx, [esp + 0x18]
call fcn.00446c10
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x45da7e
push esi
mov eax, edi
call fcn.0045e929
lea edi, [esp + 0x38]
call fcn.0045ef78
test ebx, ebx
je 0x45d9be
push ebx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
jmp 0x45d9be
xor ecx, ecx
xor eax, eax
cmp ecx, dword [esp + 0x14]
push eax
sbb ecx, ecx
neg ecx
push 0x80
inc ecx
inc ecx
push ecx
push eax
push eax
push 0xc0000000
lea esi, [esp + 0x28]
call fcn.0040808a
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x45db1b
mov eax, edi
call fcn.0045e8d5
test al, al
je 0x45dae6
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea edi, [esp + 0x38]
call fcn.0045ef78
cmp dword [esp + 0x30], 0
je 0x45d98e
push dword [esp + 0x30]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
jmp 0x45d98e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
mov eax, edi
call fcn.0045e929
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea edi, [esp + 0x38]
call fcn.0045ef78
cmp dword [esp + 0x30], 0
je 0x45d9be
push dword [esp + 0x30]
jmp 0x45da73
xor esi, esi
cmp dword [esp + 0x14], esi
jbe 0x45db3b
push 2
push esi
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ecx, dword [edi + 0x14]
cmp ecx, esi
je 0x45db48
push dword [esp + 0x14]
jmp 0x45db43
mov ecx, dword [edi + 0x14]
cmp ecx, esi
je 0x45db48
push esi
mov eax, dword [ecx]
call dword [eax + 0x10]
push 0xc800
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x1c], esi
call fcn.004338b8
lea eax, [esp + 0x24]
push eax
push dword [edi]
mov eax, edi
call fcn.0045ded3
and dword [esp + 0x28], 0
mov esi, eax
test esi, esi
jne 0x45dba6
cmp dword [esp + 0x24], eax
jbe 0x45dc23
mov eax, 0xc800
cmp dword [esp + 0x24], eax
jae 0x45db8d
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x28]
push ecx
push eax
push dword [esp + 0x1c]
mov eax, edi
push dword [edi]
call fcn.0045de3a
mov esi, eax
test esi, esi
je 0x45dc1c
cmp esi, 0x2ee2
je 0x45dbc6
cmp esi, 0x2efe
je 0x45dbc6
cmp esi, 0x2eff
je 0x45dbc6
cmp esi, 0x2f83
jne 0x45dbf4
cmp dword [esp + 0x20], 3
je 0x45dbd4
cmp dword [esp + 0x20], 4
jne 0x45dbf4
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x3c]
push eax
push ebx
push dword [esp + 0x24]
mov eax, edi
call fcn.0045ddc4
mov esi, eax
test esi, esi
je 0x45db5b
cmp esi, 0xe0000008
je 0x45dc04
push esi
mov eax, edi
call fcn.0045e929
push dword [esp + 0x14]
call fcn.00489beb
pop ecx
test ebx, ebx
je 0x45dafe
push ebx
jmp 0x45daf8
cmp dword [esp + 0x28], 0
jne 0x45dc56
cmp dword [esp + 0x1c], 0
jbe 0x45dcce
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, dword [esp + 0x1c]
jae 0x45dcce
cmp dword [esp + 0x20], 3
je 0x45dbd4
cmp dword [esp + 0x20], 4
je 0x45dbd4
mov esi, 0xe000000f
jmp 0x45dbfc
push 0
lea eax, [esp + 0x30]
push eax
push dword [esp + 0x30]
push dword [esp + 0x20]
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x45dd31
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x45dc84
push dword [esp + 0x2c]
mov eax, dword [ecx]
call dword [eax + 0x10]
push 0
mov esi, edi
call fcn.0045e8f1
mov eax, edi
call fcn.0045e8d5
test al, al
je 0x45db5b
push dword [esp + 0x14]
call fcn.00489beb
pop ecx
test ebx, ebx
je 0x45dcb1
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea edi, [esp + 0x38]
call fcn.0045ef78
cmp dword [esp + 0x30], 0
je 0x45da11
push dword [esp + 0x30]
jmp 0x45da0b
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
je 0x45dcdd
push ebx
call esi
xor ebx, ebx
push dword [esp + 0xc]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push dword [esp + 0xc]
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x45dd03
mov eax, dword [ecx]
push 1
call dword [eax + 8]
push dword [edi + 0x5c]
call dword [sym.imp.KERNEL32.dll_SetEvent]
push dword [esp + 0x14]
call fcn.00489beb
pop ecx
test ebx, ebx
je 0x45dd1d
push ebx
call esi
lea edi, [esp + 0x38]
call fcn.0045ef78
xor esi, esi
cmp dword [esp + 0x30], esi
jmp 0x45db0c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [edi + 0x10], eax
push eax
mov eax, edi
call fcn.0045e929
mov esi, dword [edi + 0x10]
jmp 0x45dc04