Function at 0x402abd
Capabilities:
Check http status code
Create http request
Delete file
Download and write a file
Get http content length
Read data from internet
Receive and write data from server to client
Receive data
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x488
and dword [ebp - 0x58], 0
and dword [ebp - 0x5c], 0
and dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 4
and dword [ebp - 0x44], 0
or dword [ebp - 0x50], 0xffffffff
and dword [ebp - 0x54], 0
push 0x40
push 0
lea eax, [ebp - 0x40]
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
call fcn.0040170c
push eax
push 0x408574
lea eax, [ebp - 0x40]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push 0x10000000
push 0
push 0
push 0
lea eax, [ebp - 0x40]
push eax
call dword [sym.imp.WININET.dll_InternetOpenA]
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0
jne 0x402b35
jmp 0x402d51
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [0x40cd44], eax
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [0x40cd48], eax
push 0x402a7d
push dword [ebp - 0x54]
call dword [sym.imp.WININET.dll_InternetSetStatusCallback]
cmp eax, 0xffffffff
jne 0x402b78
jmp 0x402d51
push 1
push 0x84000000
push 0
push 0
push dword [ebp + 8]
push dword [ebp - 0x54]
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
mov dword [0x40cd40], eax
cmp dword [0x40cd40], 0
jne 0x402bd6
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
je 0x402bb4
jmp 0x402d51
push 0x2710
push dword [0x40cd44]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x402bd6
jmp 0x402d51
push 0x4e20
push dword [0x40cd48]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x402bf8
jmp 0x402d51
push 0
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x5c]
push eax
push 0x20000013
push dword [0x40cd40]
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
test eax, eax
je 0x402c20
cmp dword [ebp - 0x5c], 0xc8
je 0x402c2a
jmp 0x402d51
push 0
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x4c]
push eax
push 0x20000005
push dword [0x40cd40]
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
test eax, eax
je 0x402c4f
cmp dword [ebp - 0x4c], 0
ja 0x402c59
jmp 0x402d51
push 0
push 0x80
push 2
push 0
push 0
push 0xc0000000
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x50], eax
xor eax, eax
inc eax
je 0x402d51
and dword [ebp - 0x60], 0
push 0x400
push 0
lea eax, [ebp - 0x488]
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
push 0
push 0x28
lea eax, [ebp - 0x88]
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
mov dword [ebp - 0x88], 0x28
lea eax, [ebp - 0x488]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], 0x400
push 2
push 0
lea eax, [ebp - 0x88]
push eax
push dword [0x40cd40]
call dword [sym.imp.WININET.dll_InternetReadFileExA]
test eax, eax
jne 0x402d11
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
jne 0x402d0d
push 0x4e20
push dword [0x40cd48]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x402d0b
jmp 0x402d51
jmp 0x402d11
jmp 0x402d51
cmp dword [ebp - 0x70], 0
jne 0x402d1b
jmp 0x402d51
push 0
lea eax, [ebp - 0x60]
push eax
push dword [ebp - 0x70]
push dword [ebp - 0x74]
push dword [ebp - 0x50]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x60]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
cmp eax, dword [ebp - 0x4c]
jne 0x402d4c
mov dword [ebp - 0x58], 1
jmp 0x402d51
jmp 0x402c77
push dword [0x40cd40]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push dword [ebp - 0x54]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push dword [0x40cd44]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [0x40cd48]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x50]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x58], 1
je 0x402d96
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [ebp - 0x58]
leave
ret 8