Function at 0x40aca0
Capabilities:
Connect socket
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket
Send http request
Send http request with host header
Set socket configuration

Disassembly:
push 0xffffffffffffffff
push 0x449046
mov eax, dword fs:[0]
push eax
mov eax, 0x30f4
mov dword fs:[0], esp
call fcn.004213b0
mov eax, dword [0x4668f4]
mov ecx, dword [esp + 0x3114]
mov edx, dword [esp + 0x3118]
xor eax, esp
push esi
mov esi, dword [esp + 0x3108]
mov dword [esp + 0x30f4], eax
mov eax, dword [esp + 0x3114]
push edi
mov dword [eax], 0
mov dword [esp + 0x14], eax
lea eax, [esp + 0x20f8]
push eax
mov dword [esp + 0xc], ecx
mov dword [ecx], 0
lea ecx, [esp + 0x10]
mov dword [esp + 0x14], edx
push ecx
lea edx, [esp + 0x100]
push edx
push esi
call fcn.004052f0
add esp, 0x10
test al, al
jne 0x40ad42
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.0040f290
push eax
push edi
push esi
push str.Failed_to_parse_SERVER_ADDRESS:__s__Error_Code___d__Error___s
push 0x3de
jmp 0x40ad79
lea ecx, [esp + 0x10f8]
push ecx
lea edx, [esp + 0xfc]
push edx
call fcn.00405200
add esp, 8
test al, al
jne 0x40ad9a
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.0040f290
push eax
push edi
push esi
push str.Failed_to_get_IP_address_for_SERVER_ADDRESS:__s__Error_Code___d__Error___s
push 0x3e5
mov eax, dword [0x467980]
push str..Utility.cpp
push 3
push str.Utility::URLDownload
push eax
call fcn.0040ebc0
add esp, 0x28
xor al, al
jmp 0x40b31c
xor ecx, ecx
mov dword [esp + 0x8c], ecx
push ebx
mov dword [esp + 0x94], ecx
lea edx, [esp + 0x10fc]
mov dword [esp + 0x98], ecx
mov ebx, 2
push edx
mov dword [esp + 0xa0], ecx
mov word [esp + 0x94], bx
call dword [sym.imp.WS2_32.dll_inet_addr]
cmp eax, 0xffffffff
je 0x40b6d6
mov dword [esp + 0x94], eax
lea eax, [esp + 0x10fc]
push eax
call dword [sym.imp.WS2_32.dll_gethostbyname]
test eax, eax
jne 0x40ae3a
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
push esi
call fcn.0040f290
push eax
push esi
lea ecx, [esp + 0x108]
push ecx
push str.gethostbyname__s__failed__error_code:__d__error:__s
push 0x3f5
push str..Utility.cpp
push 3
push str.Utility::URLDownload
mov edx, dword [0x467980]
push edx
call fcn.0040ebc0
add esp, 0x28
xor al, al
jmp 0x40b31b
mov eax, dword [eax + 0xc]
mov ecx, dword [eax]
mov esi, dword [esp + 0x10]
cmp esi, 0x1bb
mov edx, dword [ecx]
mov dword [esp + 0x94], edx
jne 0x40ae59
mov esi, 0x50
push ebp
push esi
call dword [sym.imp.WS2_32.dll_htons]
push 0
mov ebp, 1
push ebp
push ebx
mov word [esp + 0xa2], ax
call dword [sym.imp.WS2_32.dll_socket]
mov edi, eax
cmp edi, 0xffffffff
mov dword [esp + 0x14], edi
jne 0x40aebc
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
push esi
call fcn.0040f290
push eax
mov eax, dword [0x467980]
push esi
push str.socket___failed__error_code:__d__error:__s
push 0x40a
push str..Utility.cpp
push 3
push str.Utility::URLDownload
push eax
call fcn.0040ebc0
add esp, 0x24
jmp 0x40b318
push 4
lea ecx, [esp + 0x24]
push ecx
push 0x80
push 0xffff
push edi
mov word [esp + 0x36], bp
mov word [esp + 0x34], bp
call dword [sym.imp.WS2_32.dll_setsockopt]
push 0x10
lea edx, [esp + 0x98]
push edx
push edi
call dword [sym.imp.WS2_32.dll_connect]
test eax, eax
je 0x40af3b
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
push esi
call fcn.0040f290
mov ecx, dword [0x467980]
push eax
push esi
lea eax, [esp + 0x10c]
push eax
push str.connect___failed__host:__s__error_code:__d__error:__s
push 0x417
push str..Utility.cpp
push 3
push str.Utility::URLDownload
push ecx
call fcn.0040ebc0
push edi
call fcn.00405730
add esp, 0x2c
jmp 0x40b318
push 0x44c409
lea ecx, [esp + 0x7c]
call fcn.00401531
push esi
lea edx, [esp + 0xe4]
push 0x44cdac
push edx
mov dword [esp + 0x3118], 0
call fcn.004217f1
mov al, byte [esp + 0x210c]
add esp, 0xc
test al, al
jne 0x40aff2
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x28]
push str.GET
push ecx
call fcn.00403a50
push 0x44cb2c
push eax
lea edx, [esp + 0x54]
push edx
mov byte [esp + 0x3124], 1
call fcn.00403900
push str._HTTP_1.0_r_n
push eax
lea eax, [esp + 0xc4]
push eax
mov byte [esp + 0x3130], bl
call fcn.00403900
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x84]
mov byte [esp + 0x3118], 3
call fcn.00401416
lea ecx, [esp + 0xa4]
call fcn.004013ae
lea ecx, [esp + 0x40]
call fcn.004013ae
lea ecx, [esp + 0x24]
jmp 0x40b071
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0xa8]
push str.GET
push edx
call fcn.00403a50
lea ecx, [esp + 0x210c]
push ecx
push eax
lea edx, [esp + 0x54]
push edx
mov byte [esp + 0x3124], 4
call fcn.00403900
push str._HTTP_1.0_r_n
push eax
lea eax, [esp + 0x44]
push eax
mov byte [esp + 0x3130], 5
call fcn.00403900
add esp, 0x24
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x84]
mov byte [esp + 0x3118], 6
call fcn.00401416
lea ecx, [esp + 0x24]
call fcn.004013ae
lea ecx, [esp + 0x40]
call fcn.004013ae
lea ecx, [esp + 0xa4]
mov byte [esp + 0x310c], 0
call fcn.004013ae
push str.Accept:_image_gif__image_x_xbitmap__image_jpeg__image_pjpeg__application_vnd.ms_powerpoint__application_vnd.ms_excel__application_msword__application_x_shockwave_flash____r_n
lea ecx, [esp + 0x7c]
push ecx
lea edx, [esp + 0x2c]
push edx
call fcn.00403900
add esp, 0xc
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x84]
mov byte [esp + 0x3118], 7
call fcn.00401416
lea ecx, [esp + 0x24]
mov byte [esp + 0x310c], 0
call fcn.004013ae
push str.Accept_Language:_en_us_r_n
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0x2c]
push ecx
call fcn.00403900
add esp, 0xc
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x84]
mov byte [esp + 0x3118], 8
call fcn.00401416
lea ecx, [esp + 0x24]
mov byte [esp + 0x310c], 0
call fcn.004013ae
push str.Pragma:_no_cache_r_n
lea edx, [esp + 0x7c]
push edx
lea eax, [esp + 0x2c]
push eax
call fcn.00403900
add esp, 0xc
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x84]
mov byte [esp + 0x3118], 9
call fcn.00401416
lea ecx, [esp + 0x24]
mov byte [esp + 0x310c], 0
call fcn.004013ae
push str.User_Agent:_Mozilla_4.0__compatible__MSIE_6.0__Windows_NT_5.0__.NET_CLR_1.0.3705__.NET_CLR_1.1.4322__r_n
lea ecx, [esp + 0x7c]
push ecx
lea edx, [esp + 0x2c]
push edx
call fcn.00403900
add esp, 0xc
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x84]
mov byte [esp + 0x3118], 0xa
call fcn.00401416
lea ecx, [esp + 0x24]
mov byte [esp + 0x310c], 0
call fcn.004013ae
push str.Host:
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xc8]
push ecx
call fcn.00403900
lea edx, [esp + 0x10c]
push edx
mov byte [esp + 0x311c], 0xb
push eax
lea eax, [esp + 0x70]
push eax
call fcn.00403900
push 0x44cc44
push eax
lea ecx, [esp + 0xc4]
push ecx
mov byte [esp + 0x3130], 0xc
call fcn.00403900
lea edx, [esp + 0x104]
push edx
push eax
lea eax, [esp + 0x6c]
push eax
mov byte [esp + 0x313c], 0xd
call fcn.00403900
push 0x44cc40
push eax
lea ecx, [esp + 0x5c]
push ecx
mov byte [esp + 0x3148], 0xe
call fcn.00403900
add esp, 0x3c
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x84]
mov byte [esp + 0x3118], 0xf
call fcn.00401416
lea ecx, [esp + 0x24]
call fcn.004013ae
lea ecx, [esp + 0x40]
call fcn.004013ae
lea ecx, [esp + 0xa4]
call fcn.004013ae
lea ecx, [esp + 0x5c]
call fcn.004013ae
lea ecx, [esp + 0xc0]
mov byte [esp + 0x310c], 0
call fcn.004013ae
push str.Connection:_Keep_Alive_r_n_r_n
lea edx, [esp + 0x7c]
push edx
lea eax, [esp + 0xc8]
push eax
call fcn.00403900
add esp, 0xc
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x84]
mov byte [esp + 0x3118], 0x10
call fcn.00401416
lea ecx, [esp + 0xc0]
mov byte [esp + 0x310c], 0
call fcn.004013ae
cmp dword [esp + 0x90], 0x10
mov eax, dword [esp + 0x7c]
jae 0x40b2b2
lea eax, [esp + 0x7c]
mov ecx, dword [esp + 0x8c]
push 0
push ecx
push eax
push edi
call dword [sym.imp.WS2_32.dll_send]
cmp eax, dword [esp + 0x8c]
je 0x40b341
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
push esi
call fcn.0040f290
push eax
mov eax, dword [0x467980]
push esi
lea edx, [esp + 0x10c]
push edx
push str.send___failed__host:__s__error_code:__d__error:__s
push 0x43d
push str..Utility.cpp
push 3
push str.Utility::URLDownload
push eax
call fcn.0040ebc0
push edi
call fcn.00405730
add esp, 0x2c
lea ecx, [esp + 0x78]
call fcn.004013ae
xor al, al
pop ebp
pop ebx
mov ecx, dword [esp + 0x30fc]
pop edi
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x30f4]
pop esi
xor ecx, esp
call fcn.004205fd
add esp, 0x3100
ret
push 0x10000
call fcn.0043beea
add esp, 4
push 0
push 0xffff
mov ebp, eax
push ebp
push edi
call dword [sym.imp.WS2_32.dll_recv]
mov esi, eax
test esi, esi
jg 0x40b3ae
push ebp
call fcn.0043beef
add esp, 4
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
push esi
call fcn.0040f290
mov ecx, dword [0x467980]
push eax
push esi
push str.recv___iReturn___1__error_code:__d__error:__s
push 0x448
push str..Utility.cpp
push 0
push str.Utility::URLDownload
push ecx
call fcn.0040ebc0
push edi
call fcn.00405730
add esp, 0x28
jmp 0x40b30f
mov ebx, dword [esp + 0x3118]
test ebx, ebx
jne 0x40b45f
push str.Content_Length:
lea ecx, [esp + 0xa8]
call fcn.00401531
cmp dword [esp + 0xbc], 0x10
mov eax, dword [esp + 0xa8]
mov byte [esp + 0x310c], 0x11
jae 0x40b3ee
lea eax, [esp + 0xa8]
mov ebx, dword [esp + 0xb8]
push esi
push ebp
push ebx
push eax
call fcn.00405150
add esp, 0x10
cmp eax, 0xffffffff
je 0x40b50c
add eax, ebx
xor edx, edx
cmp eax, esi
jge 0x40b431
cmp edx, 0x20
jge 0x40b431
mov cl, byte [eax + ebp]
cmp cl, 0xd
je 0x40b431
cmp cl, 0xa
je 0x40b431
mov byte [esp + edx + 0xc0], cl
inc edx
inc eax
cmp eax, esi
jl 0x40b412
mov byte [esp + edx + 0xc0], 0
lea edx, [esp + 0xc0]
push edx
call fcn.004216ca
add esp, 4
lea ecx, [esp + 0xa4]
mov ebx, eax
mov byte [esp + 0x310c], 0
call fcn.004013ae
test ebx, ebx
mov edx, dword [esp + 0x10]
mov dword [edx], ebx
jle 0x40b696
push esi
push ebp
push 4
push str._r_n_r_n
call fcn.00405150
add esp, 0x10
cmp eax, 0xffffffff
je 0x40b660
lea edi, [eax + 4]
lea eax, [ebx + 1]
push eax
call fcn.0043beea
mov edx, dword [esp + 0x20]
mov dword [edx], eax
mov eax, dword [esp + 0x1c]
mov ecx, esi
sub ecx, edi
mov dword [eax], ecx
lea esi, [edi + ebp]
mov edi, dword [edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
push ebp
rep movsb byte es:[edi], byte [esi]
call fcn.0043beef
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov al, byte [esp + 0x3124]
add esp, 8
sub ebx, ecx
test al, al
mov esi, 0x10000
mov dword [esp + 0x10], esi
je 0x40b4e7
mov dword [esp + 0x10], 0x3800
mov esi, dword [esp + 0x10]
test ebx, ebx
jne 0x40b5c0
mov ecx, dword [esp + 0x14]
push ecx
call fcn.00405730
add esp, 4
lea ecx, [esp + 0x78]
call fcn.004013ae
mov al, 1
jmp 0x40b31a
mov eax, dword [0x467980]
push str.missing_Content_Length
push 0x466
push str..Utility.cpp
push 0
push str.Utility::URLDownload
push eax
call fcn.0040ebc0
push esi
push ebp
push 4
push str._r_n_r_n
call fcn.00405150
add esp, 0x28
cmp eax, 0xffffffff
je 0x40b57f
mov edi, dword [esp + 0x10]
lea ebx, [eax + 4]
sub esi, ebx
mov dword [edi], esi
inc esi
push esi
call fcn.0043beea
mov ecx, dword [esp + 0x20]
mov dword [ecx], eax
mov ecx, dword [edi]
mov edx, ecx
shr ecx, 2
mov edi, eax
lea esi, [ebx + ebp]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
push ebp
rep movsb byte es:[edi], byte [esi]
call fcn.0043beef
mov edi, dword [esp + 0x1c]
add esp, 8
jmp 0x40b58b
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov dword [eax], ebp
mov dword [ecx], esi
mov edx, dword [esp + 0x10]
mov eax, dword [edx]
mov ecx, dword [esp + 0x18]
push edi
mov dword [ecx], eax
call fcn.00405730
add esp, 4
lea ecx, [esp + 0xa4]
call fcn.004013ae
lea ecx, [esp + 0x78]
call fcn.004013ae
mov al, 1
jmp 0x40b31a
mov esi, dword [esp + 0x10]
push esi
call fcn.0043beea
add esp, 4
mov ebp, eax
push 0
lea eax, [esi - 1]
mov esi, dword [esp + 0x18]
push eax
push ebp
push esi
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
push ebp
jle 0x40b619
mov edx, dword [esp + 0x20]
mov edi, dword [edx]
mov edx, dword [esp + 0x1c]
add edi, dword [edx]
mov ecx, eax
mov edx, ecx
shr ecx, 2
mov esi, ebp
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1c]
add dword [ecx], eax
sub ebx, eax
call fcn.0043beef
add esp, 4
test ebx, ebx
jne 0x40b5bc
jmp 0x40b4ef
call fcn.0043beef
add esp, 4
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.0040f290
push eax
mov eax, dword [0x467980]
push edi
push str.recv___iReturn___1__error_code:__d__error:__s
push 0x49b
push str..Utility.cpp
push 0
push str.Utility::URLDownload
push eax
call fcn.0040ebc0
push esi
call fcn.00405730
add esp, 0x28
jmp 0x40b30f
push ebp
call fcn.0043beef
mov edx, dword [0x467980]
push str.invalid_header
push 0x4ab
push str..Utility.cpp
push 0
push str.Utility::URLDownload
push edx
call fcn.0040ebc0
push edi
call fcn.00405730
add esp, 0x20
jmp 0x40b30f
push ebp
call fcn.0043beef
mov eax, dword [0x467980]
push str.no_new_download
push 0x4b3
push str..Utility.cpp
push 0
push str.Utility::URLDownload
push eax
call fcn.0040ebc0
push edi
call fcn.00405730
add esp, 0x20
lea ecx, [esp + 0x78]
call fcn.004013ae
mov al, 1
jmp 0x40b31a
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
push esi
call fcn.0040f290
push eax
push esi
lea ecx, [esp + 0x108]
push ecx
push str.inet_addr__s__failed__error_code:__d__error:__s
push 0x3fe
push str..Utility.cpp
push 3
push str.Download
jmp 0x40ae24