Function at 0x401180
Capabilities:
Check http status code
Create http request
Read data from internet
Receive data

Disassembly:
push 0xffffffffffffffff
push 0x413782
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1f4
push ebx
push ebp
mov ebp, ecx
push esi
push edi
lea ecx, [esp + 0x18]
call fcn.00412f62
lea ecx, [esp + 0x14]
mov dword [esp + 0x20c], 0
call fcn.00412f62
mov eax, dword [esp + 0x214]
lea ecx, [esp + 0x10]
push eax
mov byte [esp + 0x210], 1
call sub.MFC42.DLL_CString::CString_1
mov ecx, ebp
mov byte [esp + 0x20c], 2
mov dword [esp + 0x20], 0
call fcn.00401aa0
mov al, byte [0x41a888]
test al, al
jne 0x4016f5
mov ebx, dword [esp + 0x28]
lea ecx, [esp + 0x34]
lea edx, [esp + 0x14]
push ecx
lea eax, [esp + 0x1c]
push edx
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x34]
push eax
push ecx
push edx
call sub.MFC42.DLL_AfxParseURL
test eax, eax
je 0x40178c
cmp dword [esp + 0x2c], 3
jne 0x40178c
push 0x10000000
push 0
push 0
push 0
push str.ProxyDown
call dword [sym.imp.WININET.dll_InternetOpenA]
mov esi, eax
push str.InternetOpen
push esi
mov ecx, ebp
call fcn.004017e0
test eax, eax
je 0x40152a
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
mov dword [ebp + 4], esi
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x1c]
and ecx, 0xffff
mov byte [esp + 0x210], 3
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
call sub.MFC42.DLL_CString::CString_2
mov ecx, ebp
mov byte [esp + 0x218], 2
call fcn.004019a0
test al, al
je 0x40152a
mov eax, dword [ebp + 0xc]
push 0x401870
push eax
call dword [sym.imp.WININET.dll_InternetSetStatusCallback]
cmp eax, 0xffffffff
je 0x40152a
mov ecx, dword [ebp + 0xc]
push 0
push 0
push 0
push 0
push ecx
call dword [sym.imp.WININET.dll_HttpSendRequestA]
mov edx, dword [ebp + 0x44]
mov eax, dword [ebp + 0x10]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
je 0x40152a
push str.sendrequest
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00401cb0
add esp, 8
test al, al
je 0x40152a
mov eax, dword [ebp + 0xc]
mov esi, dword [sym.imp.WININET.dll_HttpQueryInfoA]
lea ecx, [esp + 0x24]
push 0
lea edx, [esp + 0x108]
push ecx
push edx
push 0x13
push eax
mov dword [esp + 0x38], 0x100
call esi
test eax, eax
je 0x401347
lea ecx, [esp + 0x104]
push ecx
call dword [sym.imp.MSVCRT.dll_atol]
add esp, 4
mov ebx, eax
cmp ebx, 0xc8
jne 0x40158a
mov dl, byte [esp + 0x224]
lea ecx, [esp + 0x1c]
mov byte [ebp + 0x40], 0
mov byte [ebp + 0x28], dl
call fcn.00412f62
mov al, byte [ebp + 0x28]
mov byte [esp + 0x20c], 4
test al, al
je 0x4013e0
mov eax, dword [esp + 0x220]
lea edx, [esp + 0x10]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push edx
call sub.MFC42.DLL_CString::CString_2
lea eax, [esp + 0x30]
mov ecx, ebp
push eax
call fcn.00401af0
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x210], 5
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x28]
mov byte [esp + 0x20c], 4
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x1c]
mov edx, dword [ebp + 0x2c]
lea ecx, [ebp + 0x2c]
push 0
push 0x1002
push eax
call dword [edx + 0x28]
test eax, eax
je 0x4015ef
jmp 0x4013ec
mov ecx, dword [esp + 0x218]
mov edx, dword [ecx]
mov dword [ebp + 0x3c], edx
mov al, byte [0x41a888]
test al, al
jne 0x40160c
mov eax, dword [ebp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0xc]
lea esi, [ebp + 0x20]
push esi
push ecx
push edx
push eax
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x401430
mov ecx, dword [ebp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_SetEvent]
cmp dword [esi], 0
je 0x40160c
mov edx, dword [ebp + 0x44]
mov eax, dword [ebp + 0x14]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
je 0x4014df
push str.InternetReadFile
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00401cb0
add esp, 8
test al, al
je 0x401519
mov eax, dword [esi]
test eax, eax
je 0x40160c
mov ecx, dword [0x41a88c]
add ecx, eax
mov dword [0x41a88c], ecx
mov al, byte [ebp + 0x28]
test al, al
je 0x4014a6
mov eax, dword [esi]
mov edx, dword [ebp + 0x2c]
lea ecx, [ebp + 0x2c]
push eax
mov eax, dword [ebp + 0x18]
push eax
call dword [edx + 0x40]
mov edi, dword [ebp + 0x18]
mov ecx, 0x1400
xor eax, eax
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
jmp 0x4013ec
mov edi, dword [ebp + 0x18]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, dword [ebp + 0x3c]
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebp + 0x18]
mov ecx, 0x1400
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
jmp 0x4013ec
cmp dword [ebp + 0x30], 0xffffffff
je 0x4014f8
mov eax, dword [ebp + 0x2c]
lea ecx, [ebp + 0x2c]
call dword [eax + 0x54]
mov ecx, dword [esp + 0x1c]
push ecx
call sub.MFC42.DLL_CFile::Remove
mov al, byte [ebp + 0x28]
test al, al
jne 0x401519
mov ecx, dword [esp + 0x21c]
mov edi, dword [ebp + 0x3c]
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [esp + 0x1c]
mov byte [esp + 0x20c], 2
call sub.MFC42.DLL_CString::CString
mov ecx, ebp
call fcn.00401aa0
mov al, byte [0x41a888]
test al, al
jne 0x40174f
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov al, byte [esp + 0x224]
test al, al
jne 0x401748
mov eax, dword [0x41a890]
test eax, eax
jne 0x401578
mov eax, dword [esp + 0x20]
mov ecx, dword [0x419030]
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jge 0x401748
mov al, byte [0x41a888]
test al, al
je 0x4011ff
jmp 0x4016f5
cmp ebx, 0x1f4
jae 0x40152a
cmp ebx, 0x190
jae 0x401748
cmp ebx, 0x12d
je 0x4015ba
cmp ebx, 0x12e
je 0x4015ba
cmp ebx, 0x12f
jne 0x40152a
mov edx, dword [ebp + 0xc]
lea eax, [esp + 0x24]
push 0
lea ecx, [esp + 0x108]
push eax
push ecx
push 0x13
push edx
call esi
test eax, eax
je 0x4015e6
lea eax, [esp + 0x104]
lea ecx, [esp + 0x10]
push eax
call fcn.00412f38
mov ecx, ebp
call fcn.00401aa0
jmp 0x401578
mov ecx, ebp
call fcn.00401aa0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x20c], 2
call sub.MFC42.DLL_CString::CString
jmp 0x40174f
mov al, byte [ebp + 0x28]
test al, al
je 0x4016dd
mov al, byte [0x41a888]
test al, al
jne 0x4016dd
mov edx, dword [ebp + 0x2c]
lea esi, [ebp + 0x2c]
mov ecx, esi
call dword [edx + 0x38]
mov ebx, eax
cmp ebx, 0xc8
jae 0x4016dd
mov ecx, 0x32
xor eax, eax
lea edi, [esp + 0x3c]
push 0
rep stosd dword es:[edi], eax
mov eax, dword [esi]
push 0
mov ecx, esi
call dword [eax + 0x30]
mov edx, dword [esi]
lea eax, [esp + 0x3c]
push ebx
push eax
mov ecx, esi
call dword [edx + 0x3c]
lea ecx, [esp + 0x3c]
push 0xc8
push ecx
mov ecx, ebp
call fcn.00401e70
test al, al
je 0x4016dd
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x54]
mov eax, dword [esp + 0x1c]
push eax
call sub.MFC42.DLL_CFile::Remove
mov ecx, ebp
call fcn.00401aa0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x20c], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov byte [esp + 0x20c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x20c], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov dword [esp + 0x20c], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 0xffffff9a
jmp 0x40172d
lea ecx, [esp + 0x1c]
mov byte [esp + 0x20c], 2
call sub.MFC42.DLL_CString::CString
mov ecx, ebp
call fcn.00401aa0
lea ecx, [esp + 0x10]
mov byte [esp + 0x20c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x20c], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov dword [esp + 0x20c], 0xffffffff
call sub.MFC42.DLL_CString::CString
xor eax, eax
mov ecx, dword [esp + 0x204]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x200
ret 0x14
mov ecx, ebp
call fcn.00401aa0
lea ecx, [esp + 0x10]
mov byte [esp + 0x20c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x20c], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov dword [esp + 0x20c], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 0xffffff9b
jmp 0x40172d
mov ecx, ebp
call fcn.00401aa0
lea ecx, [esp + 0x10]
mov byte [esp + 0x20c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x20c], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov dword [esp + 0x20c], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 0xffffff9c
jmp 0x40172d