Function at 0x401540
Capabilities:
Create http request
Query remote server for available data
Read data from internet
Receive data

Disassembly:
mov eax, 0x105f8
call fcn.00401dc0
push ebx
push ebp
push esi
push edi
mov ecx, 0x3f79
xor eax, eax
lea edi, [esp + 0x821]
mov byte [esp + 0x820], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0xff
xor eax, eax
lea edi, [esp + 0x21]
mov byte [esp + 0x20], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0xff
xor eax, eax
lea edi, [esp + 0x421]
mov byte [esp + 0x420], 0
rep stosd dword es:[edi], eax
mov ebx, dword [esp + 0x10610]
or ecx, 0xffffffff
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, ebx
xor eax, eax
xor ebp, ebp
lea edx, [esp + 0x420]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov al, byte [0x404cac]
and ecx, 3
test al, al
rep movsb byte es:[edi], byte [esi]
jne 0x4015de
push 0x404cac
call fcn.004019e0
add esp, 4
lea ecx, [esp + 0x1c]
lea edi, [esp + 0x420]
push ecx
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x424]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
call fcn.00401940
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10618]
add eax, 0xfffffffb
add esp, 0xc
cmp eax, 0x4b
ja case.0x401624.20
xor ecx, ecx
mov cl, byte [eax + 0x4018f4]
jmp dword [ecx*4 + 0x4018b4]
lea edx, [esp + 0x20]
push str.http:__ax.theprice.co.kr_data_GetSearchPackData.html
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 8
jmp 0x40176a
lea eax, [esp + 0x20]
push str.http:__ax.theprice.co.kr_archive_svrcache.cab
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 8
jmp 0x40176a
push str.http:__ax.theprice.co.kr_data_GetSearchURLData.html
jmp 0x401737
lea edx, [esp + 0x20]
push str.http:__ax.theprice.co.kr_data_GetSearchPackVersion.html
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 8
jmp 0x40176a
lea eax, [esp + 0x20]
push str.http:__ax.theprice.co.kr_data_GetSearchPackMiniVersion.html
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 8
jmp 0x40176a
push str.http:__ax.theprice.co.kr_data_GetSearchURLVersion.html
jmp 0x401737
lea edx, [esp + 0x20]
push str.http:__ax.theprice.co.kr_data_GetSideLinkVersion.html
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 8
jmp 0x40176a
lea eax, [esp + 0x20]
push str.http:__ax.theprice.co.kr_data_GetSponsorLinkVersion.html
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 8
jmp 0x40176a
push str.http:__ax.searchspy.co.kr_data_GetSpyMedicVersion.html
jmp 0x401737
lea edx, [esp + 0x20]
push str.http:__ax.theprice.co.kr_data_GetUniqueID.html
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 8
jmp 0x40176a
push ebx
lea eax, [esp + 0x24]
push str.http:__ax.theprice.co.kr_data_SetUniqueID.html_unique_id_s
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
jmp 0x40176a
push str.http:__ax.theprice.co.kr_data_GetInstallIconData.html
jmp 0x401737
lea edx, [esp + 0x20]
push str.http:__ax.theprice.co.kr_data_GetInstallIconVersion.html
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 8
jmp 0x40176a
lea eax, [esp + 0x20]
push str.http:__ax.theprice.co.kr_data_GetSidelinkInstallCount.html
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 8
jmp 0x40176a
push str.http:__ax.theprice.co.kr_data_GetHideWinRunVersion.html
lea ecx, [esp + 0x24]
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 8
jmp 0x40176a
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x20]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x40177c
push eax
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
push 0
push 0
push 0
push 0
push str.HTTPGETDATA
call dword [sym.imp.WININET.dll_InternetOpenA]
mov edi, eax
test edi, edi
mov dword [esp + 0x10], edi
jne 0x4017a4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x105f8
ret
push 0
push 0x80000000
push 0
lea ecx, [esp + 0x2c]
push 0
push ecx
push edi
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
mov ebx, eax
test ebx, ebx
jne 0x4017d5
push edi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x105f8
ret
mov esi, dword [esp + 0x10618]
test esi, esi
jne 0x4017fc
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push ebx
call esi
push edi
call esi
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x105f8
ret
push 0
lea edx, [esp + 0x1c]
push 0
push edx
push ebx
call dword [sym.imp.WININET.dll_InternetQueryDataAvailable]
test eax, eax
je 0x401866
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x14]
push eax
lea edx, [esp + 0x824]
push ecx
push edx
push ebx
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x401866
mov ecx, dword [esp + 0x14]
test esi, esi
jbe 0x40183c
lea eax, [ecx + ebp]
cmp eax, esi
ja 0x401870
mov edx, dword [esp + 0x10614]
mov eax, ecx
lea esi, [esp + 0x820]
lea edi, [edx + ebp]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x10618]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
add ebp, eax
test eax, eax
jne 0x4017fc
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push ebx
call esi
push edi
call esi
mov ecx, dword [esp + 0x10614]
mov al, byte [ecx]
cmp al, 0xd
je 0x40188d
cmp al, 0xa
jne 0x401890
mov byte [ecx], 0
mov eax, dword [esp + 0x1061c]
mov byte [ecx + ebp], 0
test eax, eax
je 0x4018a1
mov dword [eax], ebp
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x105f8
ret