Function at 0x406c70
Capabilities:
Check http status code
Connect to http server
Create http request
Parse url
Query remote server for available data
Read data from internet
Receive data
Send data
Send http request

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5882fe
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x10b0
call fcn.0055d490
mov eax, dword [0x5ef60c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, dword [ebp + 0xc]
mov esi, ecx
lea ecx, [ebp - 0x1080]
mov edi, edx
mov dword [ebp - 0x1044], 0
call fcn.0046a91c
mov dword [ebp - 4], 0
call fcn.0045e972
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x406ce3
push 0x80004005
call fcn.00401fd0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x1030], eax
mov byte [ebp - 4], 1
call fcn.0045e972
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x406d13
push 0x80004005
call fcn.00401fd0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x1028], eax
mov byte [ebp - 4], 2
call fcn.0045e972
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x406d43
push 0x80004005
call fcn.00401fd0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x1034], eax
mov byte [ebp - 4], 3
call fcn.0045e972
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x406d73
push 0x80004005
call fcn.00401fd0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x103c], eax
mov byte [ebp - 4], 4
call fcn.0045e972
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x406da3
push 0x80004005
call fcn.00401fd0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x1058], eax
mov byte [ebp - 4], 5
call fcn.0045e972
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x406dd3
push 0x80004005
call fcn.00401fd0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x1024], eax
mov byte [ebp - 4], 6
call fcn.0045e972
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x406e03
push 0x80004005
call fcn.00401fd0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x1040], eax
mov byte [ebp - 4], 7
call fcn.0045e972
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x406e33
push 0x80004005
call fcn.00401fd0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x1038], eax
mov byte [ebp - 4], 8
call fcn.0045e972
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x406e63
push 0x80004005
call fcn.00401fd0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x101c], eax
push str.Send___start_r_n
push 0x5f80f8
mov byte [ebp - 4], 9
call fcn.00403a70
add esp, 8
call fcn.00407b50
cmp eax, 1
je 0x406eac
push str.Send___ga_not_agree_r_n
push 0x5f80f8
call fcn.00403a70
add esp, 8
jmp 0x4073b9
call fcn.0040fa70
test eax, eax
jne 0x406ecc
push str.Send___if_FALSE__COMMON_FUNCTIONS::IsLANConnected____r_n
push 0x5f80f8
call fcn.00403a70
add esp, 8
jmp 0x4073b9
push ebx
push edi
mov edi, dword [ebp + 8]
push edi
lea ecx, [ebp - 0x101c]
push ecx
push esi
call fcn.004075a0
test eax, eax
jne 0x406efa
push str.if__FALSE__MakeSendData____r_n
push 0x5f80f8
call fcn.00403a70
add esp, 8
jmp 0x4073b9
push str.https:__www.google_analytics.com_collect
lea ecx, [ebp - 0x1024]
call fcn.004019e0
mov esi, dword [ebp - 0x1024]
push esi
push edi
push str.Action__d___csUploadUrl__s__r_n
push 0x5f80f8
call fcn.00403a70
push 0x3c
lea edx, [ebp - 0x10bc]
push 0
push edx
call fcn.0055b030
add esp, 0x1c
push 0x800
lea eax, [ebp - 0x818]
push 0
push eax
mov dword [ebp - 0x10bc], 0x3c
call fcn.0055b030
add esp, 0xc
push 0x800
lea ecx, [ebp - 0x1018]
push 0
push ecx
call fcn.0055b030
add esp, 0xc
lea eax, [ebp - 0x1018]
mov dword [ebp - 0x1090], eax
mov eax, 0x400
lea ecx, [ebp - 0x10bc]
push ecx
lea edx, [ebp - 0x818]
mov dword [ebp - 0x10ac], edx
mov dword [ebp - 0x10a8], eax
mov dword [ebp - 0x108c], eax
mov eax, dword [esi - 0xc]
push 0
push eax
push esi
call dword [sym.imp.WININET.dll_InternetCrackUrlW]
test eax, eax
jne 0x406fc2
push str.Send___InternetCrackUrl___error_r_n
push 0x5f80f8
call fcn.00403a70
add esp, 8
jmp 0x4073b9
mov edx, dword [ebp - 0x10ac]
push edx
lea ecx, [ebp - 0x1030]
call fcn.004019e0
mov eax, dword [ebp - 0x1090]
push eax
lea ecx, [ebp - 0x1028]
call fcn.004019e0
mov eax, dword [ebp - 0x10b0]
movzx edi, word [ebp - 0x10a4]
cmp eax, 3
jne 0x406fff
mov esi, 0x84200000
jmp 0x40700d
cmp eax, 4
jne 0x407584
mov esi, 0x84a03000
push str.else__t___POST_r_n
push 0x5f80f8
call fcn.00403a70
add esp, 8
push str.POST
lea ecx, [ebp - 0x1034]
call fcn.004019e0
push 0x5b95a8
lea ecx, [ebp - 0x103c]
call fcn.004019e0
mov ecx, dword [ebp - 0x1040]
cmp dword [ecx - 0xc], 0
jne 0x407068
push 0
push 0
push 0
push 0
push 0x5ba54c
call dword [sym.imp.WININET.dll_InternetOpenW]
mov dword [ebp - 0x1068], eax
test eax, eax
jne 0x40707f
push str.InternetOpen___error_r_n
push 0x5f80f8
call fcn.00403a70
add esp, 8
jmp 0x4073b9
mov edx, dword [ebp - 0x1030]
push 0
push 0
push 3
push 0
push 0
push edi
push edx
push eax
call dword [sym.imp.WININET.dll_InternetConnectW]
mov ebx, eax
mov dword [ebp - 0x105c], ebx
test ebx, ebx
jne 0x4070bb
push str.InternetConnect___error_r_n
push 0x5f80f8
call fcn.00403a70
add esp, 8
jmp 0x4073a1
push 0x5ba5e0
push 0x5ba5e8
lea ecx, [ebp - 0x101c]
call fcn.00407df0
push 0x5ba5ec
push 0x5ba5f4
lea ecx, [ebp - 0x101c]
call fcn.00407df0
push 0x5ba5f8
push 0x5ba600
lea ecx, [ebp - 0x101c]
call fcn.00407df0
push 0x5ba604
push 0x5ba60c
lea ecx, [ebp - 0x101c]
call fcn.00407df0
push 0x5ba610
push 0x5ba618
lea ecx, [ebp - 0x101c]
call fcn.00407df0
mov eax, dword [ebp - 0x101c]
push eax
push 0x5ba61c
push 0x5f80f8
call fcn.00403a70
mov ecx, dword [ebp - 0x1028]
mov edx, dword [ebp - 0x1034]
add esp, 0xc
push 0
push esi
push 0
push 0
push 0
push ecx
push edx
push ebx
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
mov esi, eax
mov dword [ebp - 0x1060], esi
test esi, esi
jne 0x40717e
push str.HttpOpenRequest___error_r_n
push 0x5f80f8
call fcn.00403a70
add esp, 8
jmp 0x407396
mov ecx, dword [ebp - 0x1040]
cmp dword [ecx - 0xc], 0
je 0x4071e7
xor eax, eax
mov dword [ebp - 0x1054], eax
mov dword [ebp - 0x1050], eax
mov dword [ebp - 0x104c], eax
push 0xc
lea eax, [ebp - 0x1054]
push eax
push 0x26
push esi
mov dword [ebp - 0x1054], 3
mov dword [ebp - 0x1050], ecx
mov dword [ebp - 0x104c], 0x5b95a8
call dword [sym.imp.WININET.dll_InternetSetOptionW]
test eax, eax
jne 0x4071e7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.InternetSetOption___error__d__n
push 0x5f80f8
call fcn.00403a70
add esp, 0xc
lea ecx, [ebp - 0x101c]
push ecx
lea ecx, [ebp - 0x1038]
call fcn.00401f40
push ecx
lea edx, [ebp - 0x1038]
mov ecx, esp
mov dword [ebp - 0x106c], esp
push edx
lea edi, [ebp - 0x1080]
call fcn.00402060
mov ecx, edi
call fcn.00407c90
mov eax, dword [ebp - 0x101c]
mov edi, dword [ebp - 0x1078]
add esp, 4
push eax
push str.Send___Send_Data_to_Server__n_s_n
push 0x5f80f8
dec edi
call fcn.00403a70
mov ecx, dword [ebp - 0x103c]
mov edx, dword [ebp - 0x107c]
mov eax, dword [ecx - 0xc]
add esp, 0xc
push edi
push edx
push eax
push ecx
push esi
call dword [sym.imp.WININET.dll_HttpSendRequestW]
xor edi, edi
cmp eax, edi
jne 0x40727c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.HttpSendRequest___error_GetLastError__d__n
push 0x5f80f8
call fcn.00403a70
add esp, 0xc
jmp 0x407396
push edi
lea eax, [ebp - 0x1064]
push eax
lea ecx, [ebp - 0x102c]
push ecx
push 0x20000013
push esi
mov dword [ebp - 0x102c], edi
mov dword [ebp - 0x1048], edi
mov dword [ebp - 0x1064], 4
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
mov edx, dword [ebp - 0x102c]
push edx
push str.HttpQueryInfo___returning_dwStatus__d__n
push 0x5f80f8
call fcn.00403a70
mov eax, dword [ebp - 0x102c]
add esp, 0xc
cmp eax, 0xc8
je 0x4072f1
cmp eax, 0xca
je 0x4072f1
push str.not_200___202_error__n
push 0x5f80f8
call fcn.00403a70
add esp, 8
jmp 0x407396
push edi
push edi
lea eax, [ebp - 0x1020]
push eax
push esi
mov dword [ebp - 0x1020], edi
call dword [sym.imp.WININET.dll_InternetQueryDataAvailable]
cmp eax, edi
jne 0x40731f
push str.InternetQueryDataAvailable___error__n
push 0x5f80f8
call fcn.00403a70
add esp, 8
jmp 0x407396
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x1020]
inc ecx
push ecx
call fcn.0045de9b
mov edi, eax
add esp, 4
mov dword [ebp - 4], 9
test edi, edi
je 0x40755e
mov edx, dword [ebp - 0x1020]
inc edx
push edx
push 0
push edi
call fcn.0055b030
mov ecx, dword [ebp - 0x1020]
add esp, 0xc
lea eax, [ebp - 0x1048]
push eax
push ecx
push edi
push esi
call dword [sym.imp.WININET.dll_InternetReadFile]
mov dword [ebp - 0x1044], eax
test eax, eax
jne 0x407575
push str.WinHttpReadData___error_n
push 0x5f80f8
call fcn.00403a70
add esp, 8
push edi
call fcn.0045dea6
add esp, 4
test esi, esi
je 0x4073a1
push esi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
test ebx, ebx
je 0x4073ac
push ebx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov eax, dword [ebp - 0x1068]
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x101c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4073df
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x1038]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407405
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x1040]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40742b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x1024]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407451
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x1058]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407477
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x103c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40749d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x1034]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4074c3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x1028]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4074e9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x1030]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40750f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x1080]
mov dword [ebp - 4], 0xffffffff
call fcn.0046a933
mov eax, dword [ebp - 0x1044]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0055799e
mov esp, ebp
pop ebp
ret 8
push str.SendGoogleAnalysis_new_error_n
push 0x5f80f8
call fcn.00403a70
add esp, 8
jmp 0x407396
mov edx, dword [ebp - 0x1048]
mov byte [edx + edi], 0
jmp 0x40738d
push str.Send___assumption_error2_r_n
push 0x5f80f8
call fcn.00403a70
add esp, 8
jmp 0x4073b9