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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x44
and dword [esp + 0x14], 0
push ebx
push esi
push edi
mov edi, eax
lea eax, [esp + 0x20]
push eax
mov eax, edi
call fcn.0046b502
test eax, eax
jne 0x46b73c
lea eax, [edi + 0x7c]
cmp dword [eax], 0
jbe 0x46b6fe
push 4
push eax
push 2
push dword [esp + 0x2c]
call dword [sym.imp.WININET.dll_InternetSetOptionW]
lea eax, [esp + 0x2c]
push eax
lea esi, [edi + 0x20]
push esi
push edi
call fcn.0046c947
mov ebx, dword [sym.imp.WININET.dll_InternetSetStatusCallbackW]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x46b743
push eax
lea eax, [edi + 0x6c]
call fcn.0047931d
mov esi, dword [esp + 0x1c]
push 0
push dword [esp + 0x24]
call ebx
push dword [esp + 0x20]
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 + 0x18]
push ecx
lea ecx, [esp + 0x14]
push esi
lea eax, [edi + 0x1c]
push ecx
call fcn.0046de36
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp dword [eax - 0xc], 0
jne 0x46b783
mov eax, 0xe0000005
mov dword [edi + 0x10], eax
push eax
lea eax, [edi + 0x6c]
call fcn.0047931d
mov edi, dword [edi + 0x10]
lea ecx, [esp + 0x10]
call fcn.004058a3
mov esi, edi
jmp 0x46b728
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.0041f17d
push 0x4e0e14
lea eax, [esp + 0x18]
push eax
call fcn.00439083
lea esi, [edi + 0x6c]
push 1
mov eax, esi
mov dword [esp + 0x1c], esi
call fcn.004792fa
and dword [esp + 0x24], 0
cmp byte [edi + 0x3c], 0
je 0x46b7c9
lea eax, [esp + 0x14]
call fcn.0045f3fd
mov dword [esp + 0x24], eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x28]
push eax
push dword [esp + 0x28]
call fcn.0046bbe7
mov dword [esp + 0x1c], eax
mov eax, esi
call fcn.00479331
test al, al
je 0x46b807
lea ecx, [esp + 0x14]
call fcn.004058a3
lea ecx, [esp + 0x10]
call fcn.004058a3
mov esi, 0xe0000008
jmp 0x46b728
cmp dword [esp + 0x1c], 0
je 0x46b83a
cmp dword [esp + 0x1c], 0xe0000013
je 0x46b823
push dword [esp + 0x1c]
mov eax, esi
call fcn.0047931d
lea ecx, [esp + 0x14]
call fcn.004058a3
lea ecx, [esp + 0x10]
call fcn.004058a3
jmp 0x46b724
mov eax, dword [edi + 8]
mov ecx, dword [esi]
mov dword [esp + 0x38], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edi
test ecx, ecx
je 0x46b85f
push dword [esp + 0x10]
mov eax, dword [ecx]
push dword [esp + 0x2c]
call dword [eax + 4]
mov eax, esi
call fcn.00479331
test al, al
je 0x46b89d
lea edi, [esp + 0x48]
call fcn.0046cd56
xor esi, esi
push esi
push dword [esp + 0x3c]
call ebx
push dword [esp + 0x38]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
lea ecx, [esp + 0x14]
call fcn.004058a3
lea ecx, [esp + 0x10]
call fcn.004058a3
jmp 0x46b728
mov eax, dword [esp + 0x28]
test eax, eax
jbe 0x46b8bc
cmp eax, dword [esp + 0x24]
jne 0x46b8bc
mov esi, dword [esi]
test esi, esi
je 0x46b86a
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 8]
jmp 0x46b86a
push 0
push 0
lea ecx, [esp + 0x1c]
call fcn.00450d60
pop ecx
pop ecx
xor ecx, ecx
mov dword [esp + 0x1c], eax
cmp eax, ecx
je 0x46b8fd
push eax
mov eax, esi
call fcn.0047931d
lea edi, [esp + 0x48]
call fcn.0046cd56
push 0
push dword [esp + 0x3c]
call ebx
push dword [esp + 0x38]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
jmp 0x46b823
xor eax, eax
cmp eax, dword [esp + 0x24]
push ecx
sbb eax, eax
neg eax
push 0x80
inc eax
inc eax
push eax
push ecx
push ecx
push 0xc0000000
lea esi, [esp + 0x2c]
call fcn.0040d2f8
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [esp + 0x40], eax
cmp eax, 0xffffffff
jne 0x46b98f
mov eax, dword [esp + 0x18]
call fcn.00479331
test al, al
je 0x46b965
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea edi, [esp + 0x48]
call fcn.0046cd56
push 0
push dword [esp + 0x3c]
call ebx
push dword [esp + 0x38]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
jmp 0x46b7eb
push edi
call fcn.0046cd43
mov esi, eax
mov eax, dword [esp + 0x18]
push esi
call fcn.0047931d
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea edi, [esp + 0x48]
call fcn.0046cd56
push 0
jmp 0x46b876
xor esi, esi
cmp dword [esp + 0x24], esi
jbe 0x46b9b2
push 2
push esi
push esi
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
cmp ecx, esi
je 0x46b9c2
push dword [esp + 0x24]
jmp 0x46b9bd
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
cmp ecx, esi
je 0x46b9c2
push esi
mov eax, dword [ecx]
call dword [eax + 0x10]
push 0xc800
lea eax, [esp + 0x20]
push eax
mov dword [esp + 0x24], esi
call fcn.0043870c
lea eax, [esp + 0x24]
push eax
push dword [edi + 4]
mov eax, edi
call fcn.0046bd85
and dword [esp + 0x30], 0
mov esi, eax
test esi, esi
jne 0x46ba26
cmp dword [esp + 0x24], eax
jbe 0x46baae
mov eax, 0xc800
cmp dword [esp + 0x24], eax
jae 0x46ba08
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x30]
push ecx
push eax
push dword [esp + 0x24]
mov eax, edi
push dword [edi + 4]
call fcn.0046bce6
mov esi, eax
test esi, esi
je 0x46baa7
cmp esi, 0x2ee2
je 0x46ba46
cmp esi, 0x2efe
je 0x46ba46
cmp esi, 0x2eff
je 0x46ba46
cmp esi, 0x2f83
jne 0x46ba77
cmp dword [esp + 0x2c], 3
je 0x46ba54
cmp dword [esp + 0x2c], 4
jne 0x46ba77
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x48]
mov eax, edi
push dword [esp + 0x2c]
call fcn.0046bc6e
mov esi, eax
test esi, esi
je 0x46b9d5
cmp esi, 0xe0000008
je 0x46ba89
mov eax, dword [esp + 0x18]
push esi
call fcn.0047931d
push dword [esp + 0x1c]
call fcn.0049c876
cmp dword [esp + 0x44], 0
pop ecx
je 0x46b97f
push dword [esp + 0x40]
jmp 0x46b979
cmp dword [esp + 0x30], 0
jne 0x46baec
cmp dword [esp + 0x28], 0
jbe 0x46bb62
push 0
push dword [esp + 0x44]
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, dword [esp + 0x28]
jae 0x46bb62
cmp dword [esp + 0x2c], 3
je 0x46ba54
cmp dword [esp + 0x2c], 4
je 0x46ba54
mov esi, 0xe000000f
jmp 0x46ba7f
push 0
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x38]
push dword [esp + 0x28]
push dword [esp + 0x50]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x46bbcc
mov esi, dword [esp + 0x18]
mov ecx, dword [esi]
test ecx, ecx
je 0x46bb20
push dword [esp + 0x34]
mov eax, dword [ecx]
call dword [eax + 0x10]
lea eax, [edi + 0x34]
push eax
call fcn.00479348
mov eax, esi
call fcn.00479331
test al, al
je 0x46b9d5
push dword [esp + 0x1c]
call fcn.0049c876
xor esi, esi
pop ecx
cmp dword [esp + 0x40], esi
je 0x46bb54
push dword [esp + 0x40]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea edi, [esp + 0x48]
call fcn.0046cd56
jmp 0x46b875
cmp dword [esp + 0x40], 0
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
je 0x46bb7a
push dword [esp + 0x40]
call esi
and dword [esp + 0x40], 0
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push dword [esp + 0x10]
push dword [esp + 0x18]
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
test ecx, ecx
je 0x46bba3
mov eax, dword [ecx]
push 1
call dword [eax + 8]
push dword [edi + 0x58]
call dword [sym.imp.KERNEL32.dll_SetEvent]
push dword [esp + 0x1c]
call fcn.0049c876
cmp dword [esp + 0x44], 0
pop ecx
je 0x46b86a
push dword [esp + 0x40]
call esi
jmp 0x46b86a
push edi
call fcn.0046cd43
mov dword [edi + 0x10], eax
push eax
mov eax, dword [esp + 0x1c]
call fcn.0047931d
mov esi, dword [edi + 0x10]
jmp 0x46ba89