Function at 0x40aeb0
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 0x44024e
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x10b4
call fcn.00429a70
mov eax, dword [0x453d50]
xor eax, ebp
mov dword [ebp - 0x18], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x103c], ecx
lea ecx, [ebp - 0x1080]
mov esi, edx
mov dword [ebp - 0x1044], eax
mov dword [ebp - 0x1050], 0
call fcn.0041ee6b
mov dword [ebp - 4], 0
call fcn.0041657f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40af33
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x102c], eax
mov byte [ebp - 4], 1
call fcn.0041657f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40af63
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x1048], eax
mov byte [ebp - 4], 2
call fcn.0041657f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40af93
push 0x80004005
call fcn.00401090
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], 3
call fcn.0041657f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40afc3
push 0x80004005
call fcn.00401090
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], 4
call fcn.0041657f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40aff3
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x106c], eax
mov byte [ebp - 4], 5
call fcn.0041657f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40b023
push 0x80004005
call fcn.00401090
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], 6
call fcn.0041657f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40b053
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x104c], eax
mov byte [ebp - 4], 7
call fcn.0041657f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40b083
push 0x80004005
call fcn.00401090
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], 8
call fcn.0041657f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40b0b3
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x1020], eax
push str.Send___start_r_n
push 0x4582a0
mov byte [ebp - 4], 9
call fcn.004024c0
add esp, 8
call fcn.0040bdd0
cmp eax, 1
je 0x40b0fc
push str.Send___ga_not_agree_r_n
push 0x4582a0
call fcn.004024c0
add esp, 8
jmp 0x40b619
call fcn.004059d0
test eax, eax
jne 0x40b11c
push str.Send___if_FALSE__CSF::IsAllowConnectInternet____r_n
push 0x4582a0
call fcn.004024c0
add esp, 8
jmp 0x40b619
mov ecx, dword [ebp - 0x103c]
mov edx, dword [ebp - 0x1044]
push ecx
push edx
push ebx
push edi
lea eax, [ebp - 0x1020]
push eax
push esi
call fcn.0040b800
test eax, eax
jne 0x40b154
push str.if__FALSE__MakeSendData____r_n
push 0x4582a0
call fcn.004024c0
add esp, 8
jmp 0x40b619
push str.https:__www.google_analytics.com_collect
lea ecx, [ebp - 0x1030]
call fcn.00401a60
mov esi, dword [ebp - 0x1030]
push esi
push 0
push str.Action__d___csUploadUrl__s__r_n
push 0x4582a0
call fcn.004024c0
push 0x3c
lea ecx, [ebp - 0x10c0]
push 0
push ecx
call fcn.00428e00
add esp, 0x1c
push 0x800
lea edx, [ebp - 0x81c]
push 0
push edx
mov dword [ebp - 0x10c0], 0x3c
call fcn.00428e00
add esp, 0xc
push 0x800
lea eax, [ebp - 0x101c]
push 0
push eax
call fcn.00428e00
add esp, 0xc
lea ecx, [ebp - 0x81c]
mov dword [ebp - 0x10b0], ecx
mov eax, 0x400
lea ecx, [ebp - 0x10c0]
push ecx
lea edx, [ebp - 0x101c]
mov dword [ebp - 0x1094], edx
mov dword [ebp - 0x10ac], eax
mov dword [ebp - 0x1090], eax
mov eax, dword [esi - 0xc]
push 0
push eax
push esi
call dword [sym.imp.WININET.dll_InternetCrackUrlW]
test eax, eax
jne 0x40b21d
push str.Send___InternetCrackUrl___error_r_n
push 0x4582a0
call fcn.004024c0
add esp, 8
jmp 0x40b619
mov edx, dword [ebp - 0x10b0]
push edx
lea ecx, [ebp - 0x102c]
call fcn.00401a60
mov eax, dword [ebp - 0x1094]
push eax
lea ecx, [ebp - 0x1048]
call fcn.00401a60
mov eax, dword [ebp - 0x10b4]
movzx edi, word [ebp - 0x10a8]
cmp eax, 3
jne 0x40b25a
mov esi, 0x84200000
jmp 0x40b268
cmp eax, 4
jne 0x40b7e4
mov esi, 0x84a03000
push str.else__t___POST_r_n
push 0x4582a0
call fcn.004024c0
add esp, 8
push str.POST
lea ecx, [ebp - 0x1038]
call fcn.00401a60
push 0x446d80
lea ecx, [ebp - 0x1028]
call fcn.00401a60
mov ecx, dword [ebp - 0x104c]
cmp dword [ecx - 0xc], 0
jne 0x40b2c3
push 0
push 0
push 0
push 0
push str.Epson_Software_Updater
call dword [sym.imp.WININET.dll_InternetOpenW]
mov dword [ebp - 0x1064], eax
test eax, eax
jne 0x40b2da
push str.InternetOpen___error_r_n
push 0x4582a0
call fcn.004024c0
add esp, 8
jmp 0x40b619
mov edx, dword [ebp - 0x102c]
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 - 0x1044], ebx
test ebx, ebx
jne 0x40b316
push str.InternetConnect___error_r_n
push 0x4582a0
call fcn.004024c0
add esp, 8
jmp 0x40b601
push 0x4499b8
push 0x4499c0
lea eax, [ebp - 0x1020]
push eax
call fcn.0040c070
push 0x4499c4
push 0x44963c
lea ecx, [ebp - 0x1020]
push ecx
call fcn.0040c070
push 0x4499cc
push 0x4499d4
lea edx, [ebp - 0x1020]
push edx
call fcn.0040c070
push 0x4499d8
push 0x4499e0
lea eax, [ebp - 0x1020]
push eax
call fcn.0040c070
push 0x4499e4
push 0x4499ec
lea ecx, [ebp - 0x1020]
push ecx
call fcn.0040c070
mov edx, dword [ebp - 0x1020]
push edx
push 0x4499f0
push 0x4582a0
call fcn.004024c0
mov eax, dword [ebp - 0x1048]
mov ecx, dword [ebp - 0x1038]
add esp, 0xc
push 0
push esi
push 0
push 0
push 0
push eax
push ecx
push ebx
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
mov esi, eax
mov dword [ebp - 0x103c], esi
test esi, esi
jne 0x40b3de
push str.HttpOpenRequest___error_r_n
push 0x4582a0
call fcn.004024c0
add esp, 8
jmp 0x40b5f6
mov ecx, dword [ebp - 0x104c]
cmp dword [ecx - 0xc], 0
je 0x40b447
push 0xc
lea edx, [ebp - 0x1060]
push edx
xor eax, eax
push 0x26
mov dword [ebp - 0x1060], eax
mov dword [ebp - 0x105c], eax
mov dword [ebp - 0x1058], eax
push esi
mov dword [ebp - 0x1060], 3
mov dword [ebp - 0x105c], ecx
mov dword [ebp - 0x1058], 0x446d80
call dword [sym.imp.WININET.dll_InternetSetOptionW]
test eax, eax
jne 0x40b447
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.InternetSetOption___error__d__n
push 0x4582a0
call fcn.004024c0
add esp, 0xc
lea eax, [ebp - 0x1020]
push eax
lea ecx, [ebp - 0x1034]
call fcn.00401d40
push ecx
lea edx, [ebp - 0x1034]
mov ecx, esp
mov dword [ebp - 0x1084], esp
push edx
lea edi, [ebp - 0x1080]
call fcn.00401d10
mov ecx, edi
call fcn.0040bf10
mov eax, dword [ebp - 0x1020]
mov edi, dword [ebp - 0x1078]
add esp, 4
push eax
push str.Send___Send_Data_to_Server__n_s_n
push 0x4582a0
dec edi
call fcn.004024c0
mov ecx, dword [ebp - 0x1028]
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 0x40b4dc
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.HttpSendRequest___error_GetLastError__d__n
push 0x4582a0
call fcn.004024c0
add esp, 0xc
jmp 0x40b5f6
push edi
lea eax, [ebp - 0x1068]
push eax
lea ecx, [ebp - 0x1040]
push ecx
push 0x20000013
push esi
mov dword [ebp - 0x1040], edi
mov dword [ebp - 0x1054], edi
mov dword [ebp - 0x1068], 4
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
mov edx, dword [ebp - 0x1040]
push edx
push str.HttpQueryInfo___returning_dwStatus__d__n
push 0x4582a0
call fcn.004024c0
mov eax, dword [ebp - 0x1040]
add esp, 0xc
cmp eax, 0xc8
je 0x40b551
cmp eax, 0xca
je 0x40b551
push str.not_200___202_error__n
push 0x4582a0
call fcn.004024c0
add esp, 8
jmp 0x40b5f6
push edi
push edi
lea eax, [ebp - 0x1024]
push eax
push esi
mov dword [ebp - 0x1024], edi
call dword [sym.imp.WININET.dll_InternetQueryDataAvailable]
cmp eax, edi
jne 0x40b57f
push str.InternetQueryDataAvailable___error__n
push 0x4582a0
call fcn.004024c0
add esp, 8
jmp 0x40b5f6
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x1024]
inc ecx
push ecx
call fcn.004164dc
mov edi, eax
add esp, 4
mov dword [ebp - 4], 9
test edi, edi
je 0x40b7be
mov edx, dword [ebp - 0x1024]
inc edx
push edx
push 0
push edi
call fcn.00428e00
mov ecx, dword [ebp - 0x1024]
add esp, 0xc
lea eax, [ebp - 0x1054]
push eax
push ecx
push edi
push esi
call dword [sym.imp.WININET.dll_InternetReadFile]
mov dword [ebp - 0x1050], eax
test eax, eax
jne 0x40b7d5
push str.WinHttpReadData___error_n
push 0x4582a0
call fcn.004024c0
add esp, 8
push edi
call fcn.004164d1
add esp, 4
test esi, esi
je 0x40b601
push esi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
test ebx, ebx
je 0x40b60c
push ebx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov eax, dword [ebp - 0x1064]
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x1020]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b63f
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 - 0x1034]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b665
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 - 0x104c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b68b
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 - 0x1030]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b6b1
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 - 0x106c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b6d7
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 - 0x1028]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b6fd
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 - 0x1038]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b723
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 - 0x1048]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b749
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 - 0x102c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b76f
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.0041ee82
mov eax, dword [ebp - 0x1050]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x18]
xor ecx, ebp
call fcn.00425035
mov esp, ebp
pop ebp
ret 0xc
push str.SendGoogleAnalysis_new_error_n
push 0x4582a0
call fcn.004024c0
add esp, 8
jmp 0x40b5f6
mov edx, dword [ebp - 0x1054]
mov byte [edx + edi], 0
jmp 0x40b5ed
push str.Send___assumption_error2_r_n
push 0x4582a0
call fcn.004024c0
add esp, 8
jmp 0x40b619