Function at 0x40c540
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 0x4414bc
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x10b4
call fcn.0042b1e0
mov eax, dword [0x454d50]
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
xor edi, edi
lea ecx, [ebp - 0x1080]
mov dword [ebp - 4], edi
mov dword [ebp - 0x104c], edi
call fcn.00420609
mov byte [ebp - 4], 1
call fcn.00417cef
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40c5aa
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], 2
call fcn.00417cef
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40c5da
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 - 0x1044], eax
mov byte [ebp - 4], 3
call fcn.00417cef
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40c60a
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 - 0x1024], eax
mov byte [ebp - 4], 4
call fcn.00417cef
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40c63a
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 - 0x103c], eax
mov byte [ebp - 4], 5
call fcn.00417cef
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40c66a
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 - 0x1068], eax
mov byte [ebp - 4], 6
call fcn.00417cef
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40c69a
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], 7
call fcn.00417cef
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40c6ca
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [ebp - 0x1054], ebx
mov byte [ebp - 4], 8
call fcn.00417cef
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40c6fa
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], 9
call fcn.00417cef
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40c72a
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
push str.Send___start_r_n
push 0x4592c0
mov byte [ebp - 4], 0xa
call fcn.00402620
add esp, 8
call fcn.0040cf80
cmp eax, 1
je 0x40c773
push str.Send___ga_not_agree_r_n
push 0x4592c0
call fcn.00402620
add esp, 8
jmp 0x40cc28
call fcn.00406d70
test eax, eax
jne 0x40c793
push str.Send___if_FALSE__CSF::IsAllowConnectInternet____r_n
push 0x4592c0
call fcn.00402620
add esp, 8
jmp 0x40cc28
push 0x69
push str.https:__www.google_analytics.com_mp_collect_api_secret82NOVPXBTYO78mfepWW10Qmeasurement_idG_G7EW607LNW
lea ecx, [ebp - 0x102c]
call fcn.00401f70
mov esi, dword [ebp - 0x102c]
push esi
push str.csUploadUrl__s__r_n
push 0x4592c0
call fcn.00402620
add esp, 0xc
push 0x3c
lea ecx, [ebp - 0x10c0]
push edi
push ecx
call fcn.0042a570
add esp, 0xc
push 0x800
lea edx, [ebp - 0x101c]
push edi
push edx
mov dword [ebp - 0x10c0], 0x3c
call fcn.0042a570
add esp, 0xc
push 0x800
lea eax, [ebp - 0x81c]
push edi
push eax
call fcn.0042a570
add esp, 0xc
lea ecx, [ebp - 0x101c]
mov dword [ebp - 0x10b0], ecx
mov eax, 0x400
lea ecx, [ebp - 0x10c0]
push ecx
lea edx, [ebp - 0x81c]
mov dword [ebp - 0x1094], edx
mov dword [ebp - 0x10ac], eax
mov dword [ebp - 0x1090], eax
mov eax, dword [esi - 0xc]
push edi
push eax
push esi
call dword [sym.imp.WININET.dll_InternetCrackUrlW]
cmp eax, edi
jne 0x40c85b
push str.Send___InternetCrackUrl___error_r_n
push 0x4592c0
call fcn.00402620
add esp, 8
jmp 0x40cc28
mov edx, dword [ebp - 0x10b0]
push edx
lea ecx, [ebp - 0x1028]
call fcn.00401bc0
mov eax, dword [ebp - 0x1094]
push eax
lea ecx, [ebp - 0x1044]
call fcn.00401bc0
mov eax, dword [ebp - 0x10b4]
movzx esi, word [ebp - 0x10a8]
cmp eax, 3
jne 0x40c898
mov edi, 0x84200000
jmp 0x40c8a6
cmp eax, 4
jne 0x40ce10
mov edi, 0x84a03000
push str.else__t___POST_r_n
push 0x4592c0
call fcn.00402620
add esp, 8
push str.POST
lea ecx, [ebp - 0x1024]
call fcn.00401bc0
push str.___________________________7d92b6292d0956
lea ecx, [ebp - 0x1030]
call fcn.00401bc0
lea ecx, [ebp - 0x1030]
push ecx
lea edx, [ebp - 0x1040]
push str.Content_Type:_application_json_charsetutf8__boundary
push edx
call fcn.00405dc0
add esp, 0xc
push 0x44ad7c
push eax
lea eax, [ebp - 0x1038]
push eax
mov byte [ebp - 4], 0xb
call fcn.00405ce0
add esp, 0xc
push eax
lea ecx, [ebp - 0x103c]
mov byte [ebp - 4], 0xc
call fcn.00401ea0
lea ecx, [ebp - 0x1038]
call fcn.00413210
lea ecx, [ebp - 0x1040]
mov byte [ebp - 4], 0xa
call fcn.00413210
cmp dword [ebx - 0xc], 0
jne 0x40c959
push 0
push 0
push 0
push 0
push str.Epson_Software_Updater
call dword [sym.imp.WININET.dll_InternetOpenW]
mov dword [ebp - 0x106c], eax
test eax, eax
jne 0x40c970
push str.InternetOpen___error_r_n
push 0x4592c0
call fcn.00402620
add esp, 8
jmp 0x40cc28
mov ecx, dword [ebp - 0x1028]
push 0
push 0
push 3
push 0
push 0
push esi
push ecx
push eax
call dword [sym.imp.WININET.dll_InternetConnectW]
mov ebx, eax
mov dword [ebp - 0x1040], ebx
test ebx, ebx
jne 0x40c9ac
push str.InternetConnect___error_r_n
push 0x4592c0
call fcn.00402620
add esp, 8
jmp 0x40cc0a
mov edx, dword [ebp - 0x1044]
mov eax, dword [ebp - 0x1024]
push 0
push edi
push 0
push 0
push 0
push edx
push eax
push ebx
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
mov esi, eax
mov dword [ebp - 0x1038], esi
test esi, esi
jne 0x40c9ed
push str.HttpOpenRequest___error_r_n
push 0x4592c0
call fcn.00402620
add esp, 8
jmp 0x40cbff
mov ecx, dword [ebp - 0x1054]
cmp dword [ecx - 0xc], 0
je 0x40ca56
xor eax, eax
mov dword [ebp - 0x105c], eax
push 0xc
mov dword [ebp - 0x105c], ecx
lea ecx, [ebp - 0x1060]
push ecx
push 0x26
mov dword [ebp - 0x1060], eax
mov dword [ebp - 0x1058], eax
push esi
mov dword [ebp - 0x1060], 3
mov dword [ebp - 0x1058], 0x447d68
call dword [sym.imp.WININET.dll_InternetSetOptionW]
test eax, eax
jne 0x40ca56
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.InternetSetOption___error__d__n
push 0x4592c0
call fcn.00402620
add esp, 0xc
lea edx, [ebp + 8]
push edx
lea ecx, [ebp - 0x1048]
call fcn.00401ea0
push ecx
lea eax, [ebp - 0x1048]
mov ecx, esp
mov dword [ebp - 0x1084], esp
push eax
lea edi, [ebp - 0x1080]
call fcn.00401e70
mov ecx, edi
call fcn.0040d0c0
mov ecx, dword [ebp + 8]
mov edi, dword [ebp - 0x1078]
add esp, 4
push ecx
push str.Send___Send_Data_to_Server__n_s_n
push 0x4592c0
dec edi
call fcn.00402620
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 0x40cae5
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.HttpSendRequest___error_GetLastError__d__n
push 0x4592c0
call fcn.00402620
add esp, 0xc
jmp 0x40cbff
push edi
lea eax, [ebp - 0x1064]
push eax
lea ecx, [ebp - 0x1034]
push ecx
push 0x20000013
push esi
mov dword [ebp - 0x1034], edi
mov dword [ebp - 0x1050], edi
mov dword [ebp - 0x1064], 4
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
mov edx, dword [ebp - 0x1034]
push edx
push str.HttpQueryInfo___returning_dwStatus__d__n
push 0x4592c0
call fcn.00402620
mov eax, dword [ebp - 0x1034]
add esp, 0xc
cmp eax, 0xc8
je 0x40cb5a
cmp eax, 0xca
je 0x40cb5a
push str.not_200___202_error__n
push 0x4592c0
call fcn.00402620
add esp, 8
jmp 0x40cbff
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 0x40cb88
push str.InternetQueryDataAvailable___error__n
push 0x4592c0
call fcn.00402620
add esp, 8
jmp 0x40cbff
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x1020]
inc ecx
push ecx
call fcn.00417c41
mov edi, eax
add esp, 4
mov dword [ebp - 4], 0xa
test edi, edi
je 0x40cdea
mov edx, dword [ebp - 0x1020]
inc edx
push edx
push 0
push edi
call fcn.0042a570
mov ecx, dword [ebp - 0x1020]
add esp, 0xc
lea eax, [ebp - 0x1050]
push eax
push ecx
push edi
push esi
call dword [sym.imp.WININET.dll_InternetReadFile]
mov dword [ebp - 0x104c], eax
test eax, eax
jne 0x40ce01
push str.WinHttpReadData___error_n
push 0x4592c0
call fcn.00402620
add esp, 8
push edi
call fcn.00417c4c
add esp, 4
test esi, esi
je 0x40cc0a
push esi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
test ebx, ebx
je 0x40cc15
push ebx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov eax, dword [ebp - 0x106c]
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov ebx, dword [ebp - 0x1054]
mov byte [ebp - 4], 9
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 0x40cc4e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 8
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 0x40cc74
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
mov byte [ebp - 4], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cc94
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 - 0x102c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ccba
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 - 0x1068]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cce0
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 - 0x103c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cd06
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 - 0x1024]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cd2c
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 - 0x1044]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cd52
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 0x40cd78
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x1080]
mov byte [ebp - 4], 0
call fcn.00420620
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cdad
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x104c]
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.004267a2
mov esp, ebp
pop ebp
ret 4
push str.SendGoogleAnalysis_new_error_n
push 0x4592c0
call fcn.00402620
add esp, 8
jmp 0x40cbff
mov edx, dword [ebp - 0x1050]
mov byte [edx + edi], 0
jmp 0x40cbf6
push str.Send___assumption_error2_r_n
push 0x4592c0
call fcn.00402620
add esp, 8
jmp 0x40cc28