Function at 0x425e90
Capabilities:
Check http status code
Create http request
Get http content length
Get http request uri
Read data from internet
Receive data
Reference http user-agent string

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x525412
mov eax, dword fs:[0]
push eax
sub esp, 0x758
mov eax, dword [0x57594c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 4], 3
lea eax, [ebp - 0x4ec]
push eax
lea ecx, [ebp + 8]
call fcn.00424a30
mov dword [ebp - 0x6bc], eax
mov ecx, dword [ebp - 0x6bc]
mov dword [ebp - 0x6b8], ecx
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x6b8]
call fcn.00409770
push eax
call fcn.00425860
add esp, 4
test eax, eax
jne 0x425f0d
mov dword [ebp - 0x688], 1
jmp 0x425f17
mov dword [ebp - 0x688], 0
mov dl, byte [ebp - 0x688]
mov byte [ebp - 0x659], dl
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x4ec]
call fcn.00406d30
movzx eax, byte [ebp - 0x659]
test eax, eax
je 0x425f85
mov dword [ebp - 0x6c0], 0
mov byte [ebp - 4], 2
lea ecx, [ebp + 8]
call fcn.004068e0
mov byte [ebp - 4], 1
lea ecx, [ebp + 0x24]
call fcn.004068e0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x3c]
call fcn.004068e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x58]
call fcn.0040a1e0
mov eax, dword [ebp - 0x6c0]
jmp 0x426b15
mov dword [ebp - 0x654], 0
mov dword [ebp - 0x678], 0
jmp 0x425faa
mov ecx, dword [ebp - 0x678]
add ecx, 1
mov dword [ebp - 0x678], ecx
cmp dword [ebp - 0x678], 0xa
jge 0x426ad0
cmp dword [ebp - 0x654], 0
jne 0x426ad0
push 0
push 0
push 0
push 0
push str.Mozilla_5.0__Windows_NT_6.1__WOW64__Trident_7.0__rv:11.0__like_Gecko_
call dword [sym.imp.WININET.dll_InternetOpenA]
mov dword [ebp - 0x674], eax
cmp dword [ebp - 0x674], 0
jne 0x42602e
mov dword [ebp - 0x6c8], 0
mov byte [ebp - 4], 2
lea ecx, [ebp + 8]
call fcn.004068e0
mov byte [ebp - 4], 1
lea ecx, [ebp + 0x24]
call fcn.004068e0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x3c]
call fcn.004068e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x58]
call fcn.0040a1e0
mov eax, dword [ebp - 0x6c8]
jmp 0x426b15
mov dword [ebp - 0x684], str.Accept:__
mov edx, dword [ebp - 0x684]
mov dword [ebp - 0x668], edx
mov eax, dword [ebp - 0x668]
add eax, 2
mov dword [ebp - 0x6d0], eax
mov ecx, dword [ebp - 0x668]
mov dx, word [ecx]
mov word [ebp - 0x67a], dx
add dword [ebp - 0x668], 2
cmp word [ebp - 0x67a], 0
jne 0x426053
mov eax, dword [ebp - 0x668]
sub eax, dword [ebp - 0x6d0]
sar eax, 1
mov dword [ebp - 0x6e0], eax
lea ecx, [ebp - 0x4bc]
push ecx
lea ecx, [ebp + 8]
call fcn.00424a30
mov dword [ebp - 0x6d8], eax
mov edx, dword [ebp - 0x6d8]
mov dword [ebp - 0x6e8], edx
mov byte [ebp - 4], 5
push 0
push 0x80200000
mov eax, dword [ebp - 0x6e0]
push eax
mov ecx, dword [ebp - 0x684]
push ecx
mov ecx, dword [ebp - 0x6e8]
call fcn.00409770
push eax
mov edx, dword [ebp - 0x674]
push edx
call dword [sym.imp.WININET.dll_InternetOpenUrlW]
mov dword [ebp - 0x658], eax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x4bc]
call fcn.00406d30
cmp dword [ebp - 0x658], 0
jne 0x426141
mov dword [ebp - 0x6f0], 0
mov byte [ebp - 4], 2
lea ecx, [ebp + 8]
call fcn.004068e0
mov byte [ebp - 4], 1
lea ecx, [ebp + 0x24]
call fcn.004068e0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x3c]
call fcn.004068e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x58]
call fcn.0040a1e0
mov eax, dword [ebp - 0x6f0]
jmp 0x426b15
mov byte [ebp - 0x410], 0
push 0x3ff
push 0
lea eax, [ebp - 0x40f]
push eax
call fcn.004bfe20
add esp, 0xc
mov dword [ebp - 0x66c], 0x400
push 0
lea ecx, [ebp - 0x66c]
push ecx
lea edx, [ebp - 0x410]
push edx
push 0x13
mov eax, dword [ebp - 0x658]
push eax
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
lea ecx, [ebp - 0x410]
push ecx
call fcn.004b9cf4
add esp, 4
mov dword [ebp - 0x680], eax
cmp dword [ebp - 0x680], 0xc8
je 0x426316
cmp dword [ebp - 0x680], 0x12e
je 0x4261bd
jmp 0x426ab1
mov dword [ebp - 0x66c], 0x400
push 0
lea edx, [ebp - 0x66c]
push edx
lea eax, [ebp - 0x410]
push eax
push 0x21
mov ecx, dword [ebp - 0x658]
push ecx
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x740], esp
lea edx, [ebp + 0x58]
push edx
call fcn.00426d80
mov dword [ebp - 0x6f8], eax
mov eax, dword [ebp - 0x6f8]
mov dword [ebp - 0x730], eax
mov byte [ebp - 4], 6
mov ecx, dword [ebp + 0x54]
push ecx
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x758], esp
lea edx, [ebp + 0x3c]
push edx
call fcn.00406900
mov dword [ebp - 0x700], eax
mov eax, dword [ebp - 0x700]
mov dword [ebp - 0x738], eax
mov byte [ebp - 4], 7
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x750], esp
lea edx, [ebp + 0x24]
push edx
call fcn.00406900
mov dword [ebp - 0x708], eax
mov eax, dword [ebp - 0x708]
mov dword [ebp - 0x724], eax
mov byte [ebp - 4], 8
mov ecx, dword [ebp + 0x20]
push ecx
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x760], esp
sub esp, 0x18
mov edi, esp
mov dword [ebp - 0x728], esp
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x72c], esp
lea edx, [ebp - 0x410]
push edx
call fcn.00406b80
mov dword [ebp - 0x710], eax
mov eax, dword [ebp - 0x710]
mov dword [ebp - 0x734], eax
mov byte [ebp - 4], 9
push edi
mov byte [ebp - 4], 8
call fcn.0041dc50
add esp, 0x1c
mov dword [ebp - 0x718], eax
mov ecx, dword [ebp - 0x718]
mov dword [ebp - 0x73c], ecx
mov byte [ebp - 4], 0xa
mov byte [ebp - 4], 8
mov ecx, esi
call fcn.004067d0
mov dword [ebp - 0x720], eax
mov edx, dword [ebp - 0x720]
mov dword [ebp - 0x744], edx
mov byte [ebp - 4], 0xb
mov byte [ebp - 4], 3
call fcn.00425e90
add esp, 0x68
mov dword [ebp - 0x69c], eax
mov eax, dword [ebp - 0x69c]
mov dword [ebp - 0x654], eax
jmp 0x426ab1
mov dword [ebp - 0x66c], 0x400
push 0
lea ecx, [ebp - 0x66c]
push ecx
lea edx, [ebp - 0x410]
push edx
push 0x2f
mov eax, dword [ebp - 0x658]
push eax
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
lea ecx, [ebp + 0x3c]
push ecx
lea ecx, [ebp - 0x428]
call fcn.00406900
mov byte [ebp - 4], 0xc
lea edx, [ebp + 0x24]
push edx
lea ecx, [ebp - 0x440]
call fcn.00406900
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x428]
call fcn.00424da0
test eax, eax
jg 0x426548
push 0x54868c
lea eax, [ebp - 0x410]
push eax
call fcn.004257e0
add esp, 8
mov dword [ebp - 0x648], eax
cmp dword [ebp - 0x648], 0
je 0x426548
mov byte [ebp - 0x64d], 0
mov ecx, 1
imul edx, ecx, 9
add edx, dword [ebp - 0x648]
mov dword [ebp - 0x648], edx
mov eax, dword [ebp - 0x648]
movsx ecx, byte [eax]
cmp ecx, 0x22
jne 0x4263de
mov byte [ebp - 0x64d], 1
mov edx, dword [ebp - 0x648]
add edx, 1
mov dword [ebp - 0x648], edx
mov eax, dword [ebp - 0x648]
mov dword [ebp - 0x71c], eax
mov ecx, dword [ebp - 0x648]
movsx edx, byte [ecx]
test edx, edx
je 0x426423
mov eax, dword [ebp - 0x648]
movsx ecx, byte [eax]
test ecx, ecx
je 0x426423
mov edx, dword [ebp - 0x648]
movsx eax, byte [edx]
cmp eax, 0x22
je 0x426423
mov ecx, dword [ebp - 0x648]
add ecx, 1
mov dword [ebp - 0x648], ecx
jmp 0x4263ea
movzx edx, byte [ebp - 0x64d]
test edx, edx
je 0x4264b3
mov eax, dword [ebp - 0x648]
movsx ecx, byte [eax]
cmp ecx, 0x22
je 0x4264b3
mov edx, dword [ebp - 0x648]
movsx eax, byte [edx]
test eax, eax
jne 0x4264b3
mov dword [ebp - 0x6b0], 0
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x440]
call fcn.004068e0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x428]
call fcn.004068e0
mov byte [ebp - 4], 2
lea ecx, [ebp + 8]
call fcn.004068e0
mov byte [ebp - 4], 1
lea ecx, [ebp + 0x24]
call fcn.004068e0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x3c]
call fcn.004068e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x58]
call fcn.0040a1e0
mov eax, dword [ebp - 0x6b0]
jmp 0x426b15
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x74c], esp
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x754], esp
mov edx, dword [ebp - 0x71c]
push edx
call fcn.00406b80
mov dword [ebp - 0x6a4], eax
mov eax, dword [ebp - 0x6a4]
mov dword [ebp - 0x75c], eax
mov byte [ebp - 4], 0xe
push esi
mov byte [ebp - 4], 0xd
call fcn.0041dc50
add esp, 0x1c
mov dword [ebp - 0x6e4], eax
mov ecx, dword [ebp - 0x6e4]
mov dword [ebp - 0x764], ecx
mov byte [ebp - 4], 0xf
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x458]
call fcn.004067d0
mov dword [ebp - 0x748], eax
mov byte [ebp - 4], 0x10
lea edx, [ebp - 0x458]
push edx
lea ecx, [ebp - 0x428]
call fcn.00409390
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x458]
call fcn.004068e0
lea ecx, [ebp - 0x428]
call fcn.00424da0
test eax, eax
jg 0x4265ce
lea eax, [ebp - 0x54c]
push eax
lea ecx, [ebp + 8]
call fcn.00424a30
mov dword [ebp - 0x6ac], eax
mov ecx, dword [ebp - 0x6ac]
mov dword [ebp - 0x704], ecx
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x704]
call fcn.00409770
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
lea ecx, [ebp - 0x470]
call fcn.004067b0
mov byte [ebp - 4], 0x12
lea edx, [ebp - 0x470]
push edx
lea ecx, [ebp - 0x428]
call fcn.00409390
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x470]
call fcn.004068e0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x54c]
call fcn.00406d30
lea ecx, [ebp - 0x440]
call fcn.00424da0
test eax, eax
jg 0x426623
lea eax, [ebp - 0x51c]
push eax
call fcn.00427880
add esp, 4
mov dword [ebp - 0x6b4], eax
mov ecx, dword [ebp - 0x6b4]
mov dword [ebp - 0x6ec], ecx
mov byte [ebp - 4], 0x13
mov edx, dword [ebp - 0x6ec]
push edx
lea ecx, [ebp - 0x440]
call fcn.00409390
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x51c]
call fcn.004068e0
lea eax, [ebp - 0x428]
push eax
lea ecx, [ebp - 0x4d4]
push ecx
lea ecx, [ebp - 0x440]
call fcn.00408280
mov dword [ebp - 0x694], eax
mov edx, dword [ebp - 0x694]
mov dword [ebp - 0x714], edx
mov byte [ebp - 4], 0x14
mov eax, dword [ebp - 0x714]
push eax
mov ecx, dword [ebp + 0x20]
call fcn.00409390
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x4d4]
call fcn.004068e0
mov ecx, dword [ebp + 0x20]
call fcn.00424da0
test eax, eax
jle 0x426701
lea ecx, [ebp - 0x504]
push ecx
mov ecx, dword [ebp + 0x20]
call fcn.00424a90
mov dword [ebp - 0x6c4], eax
mov edx, dword [ebp - 0x6c4]
mov dword [ebp - 0x6f4], edx
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x6f4]
push eax
lea ecx, [ebp - 0x4a4]
call fcn.00462a40
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x504]
call fcn.00406bc0
lea ecx, [ebp - 0x4a4]
call fcn.00462d10
movzx ecx, al
test ecx, ecx
je 0x4266f2
push 1
lea ecx, [ebp - 0x4a4]
call fcn.00462ef0
push 0
lea ecx, [ebp - 0x4a4]
call fcn.00463150
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x4a4]
call fcn.00462ba0
lea edx, [ebp - 0x534]
push edx
mov ecx, dword [ebp + 0x20]
call fcn.00424a30
mov dword [ebp - 0x6cc], eax
mov eax, dword [ebp - 0x6cc]
mov dword [ebp - 0x70c], eax
mov byte [ebp - 4], 0x18
mov ecx, dword [ebp - 0x70c]
call fcn.00409770
push eax
push str.Save_path
call fcn.004256d0
add esp, 8
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x534]
call fcn.00406d30
push 0x4000
call fcn.0044b6ff
add esp, 4
mov dword [ebp - 0x6d4], eax
mov ecx, dword [ebp - 0x6d4]
mov dword [ebp - 0x660], ecx
mov dword [ebp - 0x64c], 0
mov dword [ebp - 0x6fc], 4
mov dword [ebp - 0x670], 0
mov dword [ebp - 0x664], 0
push 0
lea edx, [ebp - 0x6fc]
push edx
lea eax, [ebp - 0x64c]
push eax
push 0x20000005
mov ecx, dword [ebp - 0x658]
push ecx
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
cmp dword [ebp - 0x64c], 0
jbe 0x4267e0
lea ecx, [ebp + 0x58]
call fcn.00426de0
movzx edx, al
test edx, edx
je 0x4267e0
push 0
mov eax, dword [ebp - 0x64c]
push eax
lea ecx, [ebp + 0x58]
call fcn.00426e10
lea ecx, [ebp - 0x564]
push ecx
mov ecx, dword [ebp + 0x20]
call fcn.00424a90
mov dword [ebp - 0x6dc], eax
mov edx, dword [ebp - 0x6dc]
mov dword [ebp - 0x698], edx
mov byte [ebp - 4], 0x19
push 1
push 0x20
mov eax, dword [ebp - 0x698]
push eax
lea ecx, [ebp - 0x644]
call fcn.00460360
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x564]
call fcn.00406bc0
mov ecx, dword [ebp - 0x644]
mov edx, dword [ecx + 4]
lea ecx, [ebp + edx - 0x644]
call fcn.0041ea00
movzx eax, al
test eax, eax
jne 0x426882
mov dword [ebp - 0x654], 0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x644]
call fcn.00425e60
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x440]
call fcn.004068e0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x428]
call fcn.004068e0
jmp 0x426ab1
push 0
mov ecx, dword [ebp + 0x54]
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x4268a1
mov dword [ebp - 0x654], 0
jmp 0x42698b
push 0x4000
push 0
mov edx, dword [ebp - 0x660]
push edx
call fcn.004bfe20
add esp, 0xc
lea eax, [ebp - 0x670]
push eax
push 0x4000
mov ecx, dword [ebp - 0x660]
push ecx
mov edx, dword [ebp - 0x658]
push edx
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x4268ef
mov dword [ebp - 0x654], 0
jmp 0x42698b
cmp dword [ebp - 0x670], 0
jne 0x426907
mov dword [ebp - 0x654], 0
jmp 0x42698b
mov eax, dword [ebp - 0x670]
xor ecx, ecx
push ecx
push eax
mov edx, dword [ebp - 0x660]
push edx
lea ecx, [ebp - 0x5bc]
call fcn.00426c60
mov eax, dword [ebp - 0x664]
add eax, dword [ebp - 0x670]
mov dword [ebp - 0x664], eax
cmp dword [ebp - 0x64c], 0
jbe 0x42697e
lea ecx, [ebp + 0x58]
call fcn.00426de0
movzx ecx, al
test ecx, ecx
je 0x426963
mov edx, dword [ebp - 0x664]
push edx
mov eax, dword [ebp - 0x64c]
push eax
lea ecx, [ebp + 0x58]
call fcn.00426e10
mov ecx, dword [ebp - 0x64c]
push ecx
mov edx, dword [ebp - 0x664]
push edx
push str.Download
call fcn.004256d0
add esp, 0xc
mov eax, 1
test eax, eax
jne 0x426882
cmp dword [ebp - 0x64c], 0
jbe 0x4269b9
lea ecx, [ebp + 0x58]
call fcn.00426de0
movzx ecx, al
test ecx, ecx
je 0x4269b9
mov edx, dword [ebp - 0x64c]
push edx
mov eax, dword [ebp - 0x64c]
push eax
lea ecx, [ebp + 0x58]
call fcn.00426e10
cmp dword [ebp - 0x660], 0
je 0x4269e7
mov ecx, dword [ebp - 0x660]
mov dword [ebp - 0x6a0], ecx
mov edx, dword [ebp - 0x6a0]
push edx
call fcn.004ba0bc
add esp, 4
mov dword [ebp - 0x660], 0
lea ecx, [ebp - 0x644]
call fcn.0045ff60
cmp dword [ebp - 0x64c], 0
jbe 0x426a2d
mov eax, dword [ebp - 0x64c]
cmp eax, dword [ebp - 0x664]
jne 0x426a15
mov dword [ebp - 0x690], 1
jmp 0x426a1f
mov dword [ebp - 0x690], 0
mov ecx, dword [ebp - 0x690]
mov dword [ebp - 0x654], ecx
jmp 0x426a58
cmp dword [ebp - 0x664], 0
jbe 0x426a42
mov dword [ebp - 0x68c], 1
jmp 0x426a4c
mov dword [ebp - 0x68c], 0
mov edx, dword [ebp - 0x68c]
mov dword [ebp - 0x654], edx
cmp dword [ebp - 0x654], 0
je 0x426a70
push str.Download_complete_n
call fcn.004256d0
add esp, 4
jmp 0x426a84
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Download_failed:_d_n
call fcn.004256d0
add esp, 8
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x644]
call fcn.00425e60
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x440]
call fcn.004068e0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x428]
call fcn.004068e0
mov eax, dword [ebp - 0x658]
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov ecx, dword [ebp - 0x674]
push ecx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
jmp 0x425f9b
mov edx, dword [ebp - 0x654]
mov dword [ebp - 0x6a8], edx
mov byte [ebp - 4], 2
lea ecx, [ebp + 8]
call fcn.004068e0
mov byte [ebp - 4], 1
lea ecx, [ebp + 0x24]
call fcn.004068e0
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x3c]
call fcn.004068e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x58]
call fcn.0040a1e0
mov eax, dword [ebp - 0x6a8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004b8d48
mov esp, ebp
pop ebp
ret