Function at 0x4025b0
Capabilities:
Check http status code
Check os version
Connect to http server
Download and write a file
Get http content length
Get number of processors
Parse url
Read data from internet
Receive and write data from server to client
Receive data
Send data
Send http request
Write file on windows

Disassembly:
push 0xffffffffffffffff
push 0x42375c
mov eax, dword fs:[0]
push eax
mov eax, 0x309c
call fcn.00422170
mov eax, dword [0x432150]
xor eax, esp
mov dword [esp + 0x3098], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x432150]
xor eax, esp
push eax
lea eax, [esp + 0x30b0]
mov dword fs:[0], eax
xor eax, eax
xor ebx, ebx
push 0x1fff
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov byte [esp + 0x10b0], al
lea eax, [esp + 0x10b1]
push ebx
push eax
mov esi, ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x38], ebx
call fcn.0041c8b6
mov eax, dword [esi + 0x24]
mov edi, 8
add esp, 0xc
cmp dword [eax + 0x38], edi
jb 0x402660
mov ecx, dword [eax + 0x24]
jmp 0x402663
lea ecx, [eax + 0x24]
cmp dword [eax + 0x1c], edi
jb 0x40266d
mov eax, dword [eax + 8]
jmp 0x402670
add eax, 8
push ecx
push eax
push esi
push str.DownloadFile_begin__this0x_x__pUrl_s__pFileName_s
push 2
push str..MiniDownload.cpp
call fcn.00420090
mov ecx, dword [esi + 0x18]
mov ebp, dword [0x4251ac]
add esp, 0x18
push ecx
call ebp
mov edx, dword [esi + 0x1c]
push edx
call ebp
mov eax, dword [esi + 0x24]
add eax, 4
push eax
lea ecx, [esp + 0x94]
call dword [0x4252d8]
push 0x3c
lea ecx, [esp + 0x58]
push ebx
push ecx
mov dword [esp + 0x30c4], ebx
call fcn.0041c8b6
mov eax, dword [esp + 0xa0]
mov ebx, 1
add esp, 0xc
cmp dword [esp + 0xa8], edi
mov dword [esp + 0x54], 0x3c
mov dword [esp + 0x68], ebx
mov dword [esp + 0x84], ebx
jae 0x4026f3
lea eax, [esp + 0x94]
lea edx, [esp + 0x54]
push edx
push 0
push 0
push eax
call dword [0x425630]
test eax, eax
je 0x402b52
mov edi, dword [esp + 0x68]
cmp edi, 0x400
jae 0x402b52
cmp dword [esp + 0x84], 0x400
jae 0x402b52
cmp dword [esi + 8], 0
je 0x402b52
push 0x7fe
lea eax, [esp + 0x8b2]
push 0
push eax
mov word [esp + 0x8b8], 0
call fcn.0041c8b6
mov ecx, dword [esp + 0x70]
add esp, 0xc
push edi
mov edi, dword [0x425440]
push ecx
lea edx, [esp + 0x8b4]
push edx
call edi
mov eax, dword [esp + 0x74]
add esp, 0xc
xor ebx, ebx
push 0x7fe
lea ecx, [esp + 0xb2]
push ebx
push ecx
mov word [esp + eax*2 + 0x8b8], bx
mov word [esp + 0xb8], bx
call fcn.0041c8b6
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
add esp, 0xc
push edx
push eax
lea ecx, [esp + 0xb4]
push ecx
call edi
mov edx, dword [esp + 0x90]
add esp, 0xc
push ebx
mov word [esp + edx*2 + 0xb0], bx
mov ebx, dword [0x4251a8]
lea edi, [esi + 0x10]
push edi
call ebx
mov ecx, dword [esi + 8]
push esi
push 0
push 3
push 0
push 0
push 0
lea eax, [esp + 0x8c4]
push eax
push ecx
call dword [0x425628]
test eax, eax
jne 0x402818
mov ebx, dword [0x4251ec]
call ebx
cmp eax, 0x3e5
jne 0x40280e
call fcn.00402dd0
test eax, eax
je 0x402822
mov ebp, 1
jmp 0x402b54
push eax
push edi
call ebx
mov ebx, dword [0x4251ec]
mov edx, dword [esi + 0x18]
push edx
call ebp
mov ecx, dword [edi]
push esi
push 0x4000000
push 0
push 0
push str.HTTP_1.0
lea eax, [esp + 0xc0]
push eax
push 0x4264b8
push ecx
call dword [0x425614]
test eax, eax
jne 0x40286d
call ebx
cmp eax, 0x3e5
jne 0x40280e
call fcn.00402dd0
test eax, eax
je 0x402878
mov ebp, 1
jmp 0x402b54
push eax
lea edx, [esi + 0xc]
push edx
call dword [0x4251a8]
mov eax, dword [esi + 0x18]
push eax
call ebp
mov ecx, dword [esi + 0xc]
push 0
push 0
push 0
push 0
push ecx
call dword [0x425618]
test eax, eax
jne 0x4028b4
call ebx
cmp eax, 0x3e5
jne 0x40280e
call fcn.00402dd0
test eax, eax
je 0x4028b4
mov ebp, 1
jmp 0x402b54
mov ecx, dword [esi + 0xc]
mov ebp, dword [0x42561c]
push 0
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x28]
push eax
push 0x20000013
mov ebx, 4
push ecx
mov dword [esp + 0x3c], ebx
call ebp
test eax, eax
lea edi, [ebx - 2]
jne 0x4028fd
push str.DownloadFile_error3
push str..MiniDownload.cpp
call fcn.00420160
add esp, 8
mov ebp, 1
jmp 0x402b54
mov edx, dword [esp + 0x20]
push edx
push str.HttpQueryInfo__return_StatusCode_d
push str..MiniDownload.cpp
call fcn.00420160
add esp, 0xc
cmp dword [esp + 0x20], 0xc8
je 0x402925
push str.DownloadFile_error4
jmp 0x4028e6
mov edx, dword [esi + 0xc]
push 0
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x24]
push ecx
push 0x20000005
push edx
mov dword [esp + 0x38], ebx
call ebp
test eax, eax
jne 0x40294b
push str.DownloadFile_error5
jmp 0x4028e6
mov eax, dword [esp + 0x1c]
push eax
push str.HttpQueryInfo__return_ContentLength_d
push str..MiniDownload.cpp
call fcn.00420160
mov eax, dword [esp + 0x30]
mov ecx, dword [esi + 0x28]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
add esp, 0xc
push eax
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
push eax
call edx
mov eax, dword [esi + 0x24]
add eax, 0x20
mov ebx, 8
cmp dword [eax + 0x18], ebx
jb 0x40298f
mov eax, dword [eax + 4]
jmp 0x402992
add eax, 4
push 0x426548
push eax
call dword [0x425434]
mov edi, eax
mov eax, dword [esi + 0x24]
add eax, 0x20
add esp, 8
cmp dword [eax + 0x18], ebx
mov dword [esp + 0x18], edi
jb 0x4029b7
mov eax, dword [eax + 4]
jmp 0x4029ba
add eax, 4
push edi
push eax
push str.open_file__filename_s__pFileSave0x_x
push 2
push str..MiniDownload.cpp
call fcn.00420090
add esp, 0x14
test edi, edi
jne 0x4029f3
push str.DownloadFile_error6
push str..MiniDownload.cpp
mov edi, 2
call fcn.00420160
add esp, 8
lea ebp, [edi + 1]
jmp 0x402b54
mov ebp, dword [esp + 0x1c]
test ebp, ebp
mov dword [esp + 0x2c], 0x28
jbe 0x402aff
mov ebx, dword [0x42543c]
lea ecx, [ecx]
cmp ebp, 0x2000
lea eax, [esp + 0x10ac]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ebp
jb 0x402a2f
mov dword [esp + 0x44], 0x2000
mov ecx, dword [esi + 0x18]
push ecx
call dword [0x4251ac]
mov eax, dword [esi + 0xc]
push esi
push 1
lea edx, [esp + 0x34]
push edx
push eax
call dword [0x425620]
test eax, eax
jne 0x402a78
call dword [0x4251ec]
cmp eax, 0x3e5
jne 0x402b03
call fcn.00402dd0
test eax, eax
je 0x402a8c
push str.DownloadFile_error7
mov edi, 2
jmp 0x4028e6
mov ecx, dword [esi + 0x20]
push 0
push ecx
call dword [0x42521c]
test eax, eax
je 0x402b20
mov edx, dword [esp + 0x44]
push ebp
push edx
push str.InternetReadFileEx__recvlen_d__leftlen_d
push str..MiniDownload.cpp
mov edi, 2
call fcn.00420160
mov eax, dword [esp + 0x54]
add esp, 0x10
test eax, eax
jbe 0x402b2f
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x40]
push ecx
push eax
push 1
push edx
call ebx
mov ecx, dword [esp + 0x54]
add esp, 0x10
cmp eax, ecx
jne 0x402b39
sub ebp, ecx
mov ecx, dword [esp + 0x1c]
mov eax, ecx
sub eax, ebp
imul eax, eax, 0x64
xor edx, edx
div ecx
mov ecx, dword [esi + 0x28]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
push 0
lea eax, [eax + eax*4]
add eax, eax
push eax
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
push eax
call edx
test ebp, ebp
ja 0x402a10
xor ebp, ebp
jmp 0x402b54
push eax
push str.DownloadFile_error8__dwLastError_d
push str..MiniDownload.cpp
mov edi, 2
call fcn.00420160
add esp, 0xc
lea ebp, [edi - 1]
jmp 0x402b54
push str.DownloadFile_error9
mov edi, 2
jmp 0x4028e6
push str.DownloadFile_error10
jmp 0x4028e6
push str.DownloadFile_error11
push str..MiniDownload.cpp
call fcn.00420160
add esp, 8
mov ebp, 3
jmp 0x402b54
mov ebp, ebx
push ebp
push esi
push str.ERROR_EXIT__this0x_x__dwErrCode_d
push str..MiniDownload.cpp
mov edi, 2
call fcn.00420160
mov eax, dword [esp + 0x28]
add esp, 0x10
test eax, eax
je 0x402b7f
push eax
call dword [0x42540c]
add esp, 4
mov eax, dword [esi + 0xc]
test eax, eax
lea edi, [esi + 0xc]
je 0x402c1b
mov ecx, dword [edi]
push ecx
call dword [0x42562c]
push 0
push edi
call dword [0x4251a8]
mov edx, dword [esi + 0x10]
lea ebx, [esi + 0x10]
push edx
call dword [0x42562c]
push 0
push ebx
mov dword [esp + 0x20], eax
call dword [0x4251a8]
call dword [0x4251ec]
push 0
push edi
mov ebx, eax
call dword [0x4251a8]
mov eax, dword [esp + 0x18]
push ebx
push eax
push esi
push str.InternetCloseHandle__this0x_x__bRet_d__LastError_d
push str..MiniDownload.cpp
mov edi, 2
call fcn.00420160
mov eax, dword [esi + 0x14]
add esp, 0x14
cmp eax, 6
jg 0x402bfc
test eax, eax
jle 0x402bfc
mov ecx, dword [esi + 0x1c]
push 0x64
push ecx
jmp 0x402c02
mov edx, dword [esi + 0x1c]
push 0xffffffffffffffff
push edx
call dword [0x42521c]
push esi
push str.InternetCloseHandle__wait_return__this0x_x
push str..MiniDownload.cpp
call fcn.00420160
add esp, 0xc
mov eax, dword [esi + 0x28]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x24]
mov edx, dword [ecx]
mov eax, dword [eax]
mov edx, dword [edx + 0x10]
push ebp
push eax
call edx
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x28]
push eax
push ecx
call fcn.00403380
xor edx, edx
test ebp, ebp
sete dl
lea ecx, [esp + 0x90]
mov dword [esp + 0x30b8], 0xffffffff
mov esi, edx
call dword [0x4252f0]
mov eax, esi
mov ecx, dword [esp + 0x30b0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x3098]
xor ecx, esp
call fcn.0041b911
add esp, 0x30a8
ret