Function at 0x40c0c0
Capabilities:
Delete file
Write file on windows

Disassembly:
push 0xffffffffffffffff
push 0x43e927
mov eax, dword fs:[0]
push eax
sub esp, 0x98
mov eax, dword [0x451d80]
xor eax, esp
mov dword [esp + 0x90], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x451d80]
xor eax, esp
push eax
lea eax, [esp + 0xac]
mov dword fs:[0], eax
mov eax, dword [esp + 0xc4]
mov edi, dword [esp + 0xc0]
mov ebp, dword [esp + 0xbc]
mov dword [esp + 0x38], eax
mov eax, dword [0x45353c]
xor ebx, ebx
mov dword [esp + 0x30], edi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0xb4], ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], eax
push 0x80000
mov byte [esp + 0xb8], 2
call fcn.0041926e
add esp, 4
cmp eax, ebx
mov dword [esp + 0x20], eax
jne 0x40c167
lea esi, [ebx + 0xd]
jmp 0x40c468
push 0x58
lea eax, [esp + 0x50]
push ebx
push eax
call fcn.0042a080
add esp, 0xc
push ebx
push ebx
xor ecx, ecx
mov esi, ebp
call fcn.0040b770
cmp eax, ebx
jne 0x40c190
mov esi, 0xb
jmp 0x40c455
mov ebx, 1
cmp byte [ebp + 5], bl
jne 0x40c1b4
mov eax, ebp
call fcn.0040bac0
push str._CHTTPBlockDownload___DownloadFile__connect_ok
call fcn.004156d0
mov byte [ebp + 5], 0
mov byte [ebp + 4], bl
jmp 0x40c1be
push str._CHTTPBlockDownload___DownloadFile__no_need_to_connect
call fcn.004156d0
add esp, 4
test edi, edi
jne 0x40c1c9
xor eax, eax
jmp 0x40c1d0
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push edi
mov ebx, eax
lea esi, [esp + 0x20]
call fcn.00406eb0
mov edi, dword [esp + 0x1c]
push 0x5c
push edi
call fcn.00426f79
add esp, 8
test eax, eax
je 0x40c2cb
sub eax, edi
sar eax, 1
mov esi, eax
cmp esi, 0xffffffff
je 0x40c2cb
mov ecx, dword [edi - 8]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x20]
sub ecx, esi
push eax
call fcn.0040b5a0
mov edi, eax
lea eax, [esp + 0x34]
mov byte [esp + 0xb4], 3
call fcn.0040b470
mov byte [esp + 0xb4], 2
mov eax, dword [esp + 0x14]
lea ecx, [eax - 0xc]
cmp ecx, 0x45352c
je 0x40c25e
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40c25e
mov eax, dword [esp + 0x14]
add eax, 0xfffffff4
push eax
call fcn.00419273
add esp, 4
lea edx, [esp + 0x14]
push edx
mov ecx, esi
lea ebx, [esp + 0x20]
call fcn.0040b4f0
mov edi, eax
lea eax, [esp + 0x2c]
mov byte [esp + 0xb4], 4
call fcn.0040b470
mov byte [esp + 0xb4], 2
mov eax, dword [esp + 0x14]
lea ecx, [eax - 0xc]
cmp ecx, 0x45352c
je 0x40c2b6
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40c2b6
mov edx, dword [esp + 0x14]
add edx, 0xfffffff4
push edx
call fcn.00419273
add esp, 4
mov ecx, dword [esp + 0x2c]
call fcn.0040be20
test eax, eax
jne 0x40c2d5
lea esi, [eax + 0xf]
jmp 0x40c455
mov esi, 0xc
jmp 0x40c455
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
push eax
push ecx
push edx
lea ecx, [esp + 0x58]
mov edx, ebp
call fcn.0040bbc0
mov esi, eax
test esi, esi
jne 0x40c455
push eax
push 0x80
push 2
push eax
mov eax, dword [esp + 0x40]
push 3
push 0xc0000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
mov dword [esp + 0x14], eax
jne 0x40c330
mov esi, 0xe
jmp 0x40c44e
mov ebx, dword [esp + 0x28]
cmp ebx, dword [esp + 0x50]
ja 0x40c446
mov edx, dword [esp + 0x4c]
mov edi, dword [esp + 0x24]
jb 0x40c350
cmp edi, edx
jae 0x40c446
xor esi, esi
mov ecx, edi
add ecx, 0x80000
mov eax, ebx
adc eax, esi
cmp eax, dword [esp + 0x50]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
ja 0x40c37c
jb 0x40c372
cmp ecx, edx
jae 0x40c37c
mov dword [esp + 0x18], 0x80000
jmp 0x40c382
sub edx, edi
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x18]
xor eax, eax
lea ecx, [esp + 0x30]
push ecx
mov ecx, dword [ebp]
push eax
push edx
push ebx
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x38]
push edi
push eax
push ecx
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x60]
call fcn.0040df70
mov esi, eax
test esi, esi
je 0x40c3da
push esi
push str._CHTTPBlockDownload___DownloadFile__download_file_result___d
mov ebx, 4
call fcn.004156d0
add esp, 8
mov byte [ebp + 4], 0
mov byte [ebp + 5], 1
call fcn.0040bb20
mov esi, eax
test esi, esi
jne 0x40c446
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
push 0
lea edx, [esp + 0x40]
push edx
push ebx
push edi
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x40c42a
test esi, esi
jne 0x40c446
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
push esi
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x40c431
add edi, dword [esp + 0x18]
mov eax, esi
adc ebx, eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], ebx
jmp 0x40c330
push str._CHTTPBlockDownload___DownloadFile__SetFilePointer
jmp 0x40c436
push str._CHTTPBlockDownload___DownloadFile__write_file
mov esi, 0xc
lea ebx, [esi - 8]
call fcn.004156d0
add esp, 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x40c455
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [esp + 0x20]
push edx
call fcn.00419273
xor ebx, ebx
add esp, 4
cmp esi, ebx
je 0x40c47a
mov eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov byte [ebp + 4], bl
mov byte [ebp + 5], 1
mov edi, dword [esp + 0x34]
mov ebx, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
lea ecx, [edi - 0xc]
cmp ecx, 0x45352c
je 0x40c4a2
add edi, 0xfffffff4
push edi
call ebx
test eax, eax
jg 0x40c4a2
push edi
call fcn.00419273
add esp, 4
mov edi, dword [esp + 0x2c]
lea edx, [edi - 0xc]
cmp edx, 0x45352c
je 0x40c4c4
add edi, 0xfffffff4
push edi
call ebx
test eax, eax
jg 0x40c4c4
push edi
call fcn.00419273
add esp, 4
mov edi, dword [esp + 0x1c]
lea eax, [edi - 0xc]
cmp eax, 0x45352c
je 0x40c4e5
add edi, 0xfffffff4
push edi
call ebx
test eax, eax
jg 0x40c4e5
push edi
call fcn.00419273
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0xac]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x90]
xor ecx, esp
call fcn.0042655f
add esp, 0xa4
ret 0xc