Function at 0x4020c0
Capabilities:
Connect to http server
Create http request
Read data from internet
Receive data
Send data
Send http request

Disassembly:
push 0x674
mov eax, 0x4398c7
call fcn.00407db3
mov esi, edx
mov edi, ecx
push ecx
xor ebx, ebx
mov dword [ebp - 0x528], ebx
push ecx
lea ecx, [ebp - 0x5c8]
mov word [ebp - 0x51c], 0xa0d
mov byte [ebp - 0x51a], bl
call fcn.004030c4
mov edx, 0x449c4c
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0x5c8]
call fcn.00404624
mov edx, str.____BOUNDARYBOUNDARY____
lea ecx, [ebp - 0x5c8]
call fcn.00404624
lea edx, [ebp - 0x51c]
lea ecx, [ebp - 0x5c8]
call fcn.00404624
mov edx, str.content_disposition:_form_data__name_imagedata_
lea ecx, [ebp - 0x5c8]
call fcn.00404624
lea edx, [ebp - 0x51c]
lea ecx, [ebp - 0x5c8]
call fcn.00404624
mov edx, str.Content_type:_image_png
lea ecx, [ebp - 0x5c8]
call fcn.00404624
lea edx, [ebp - 0x51c]
lea ecx, [ebp - 0x5c8]
call fcn.00404624
lea edx, [ebp - 0x51c]
lea ecx, [ebp - 0x5c8]
call fcn.00404624
mov dword [ebp - 0x680], 0x44a020
mov dword [ebp - method.std::basic_ios_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ios_char__struct_std::char_traits_char__.0
push ecx
push ecx
lea eax, [ebp - 0x670]
mov byte [ebp - 4], 1
push eax
lea ecx, [ebp - 0x680]
mov dword [ebp - 0x528], 1
call fcn.004041ef
mov dword [ebp - 4], 2
mov eax, dword [ebp - 0x680]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ifstream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x680]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0x684], eax
lea ecx, [ebp - 0x670]
call fcn.0040448c
push ebx
push ebx
lea ecx, [ebp - 0x670]
mov dword [ebp - method.std::basic_filebuf_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
call fcn.004040ff
push ecx
push ecx
push esi
lea ecx, [ebp - 0x680]
mov byte [ebp - 4], 3
call fcn.004026b2
mov eax, dword [ebp - 0x680]
mov eax, dword [eax + 4]
test byte [ebp + eax - 0x674], 6
je 0x40224c
push 0x10
push str.ShareScreen
push str.PNG_open_failed
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [ebp - 0x680]
call fcn.0040263d
jmp 0x4024e0
lea eax, [ebp - 0x670]
push eax
lea ecx, [ebp - 0x5c8]
call fcn.004035cb
lea ecx, [ebp - 0x680]
call fcn.0040263d
lea edx, [ebp - 0x51c]
lea ecx, [ebp - 0x5c8]
call fcn.00404624
mov esi, 0x449c4c
lea ecx, [ebp - 0x5c8]
mov edx, esi
call fcn.00404624
mov edx, str.____BOUNDARYBOUNDARY____
lea ecx, [ebp - 0x5c8]
call fcn.00404624
mov edx, esi
lea ecx, [ebp - 0x5c8]
call fcn.00404624
lea edx, [ebp - 0x51c]
lea ecx, [ebp - 0x5c8]
call fcn.00404624
lea eax, [ebp - 0x518]
push eax
lea ecx, [ebp - 0x5c8]
call fcn.00403007
push ebx
push ebx
push ebx
push ebx
mov esi, str.ShareScreen
push esi
call dword [sym.imp.WININET.dll_InternetOpenW]
test eax, eax
jne 0x4022ed
push 0x10
push esi
push str.Cannot_configure_wininet
jmp 0x4024ce
push ebx
push ebx
push 3
push ebx
push ebx
push 0x50
push str.upload.prtscreen.app
push eax
call dword [sym.imp.WININET.dll_InternetConnectW]
push ebx
push 0x84000000
push ebx
push ebx
push ebx
push str._upload.php
push str.POST
push eax
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
push 0xa0000000
push str.User_Agent:_Gyazowin_1.0_r_n
mov esi, eax
call fcn.004229f6
pop ecx
push eax
push str.User_Agent:_Gyazowin_1.0_r_n
push esi
call dword [sym.imp.WININET.dll_HttpAddRequestHeadersW]
test eax, eax
jne 0x40234f
push 0x10
push str.ShareScreen
push str.Cannot_set_user_agent
jmp 0x4024ce
cmp dword [ebp - 0x504], 0x10
lea eax, [ebp - 0x518]
push dword [ebp - 0x508]
cmovae eax, dword [ebp - 0x518]
push eax
push str.Content_type:_multipart_form_data__boundary____BOUNDARYBOUNDARY____
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
push str.Content_type:_multipart_form_data__boundary____BOUNDARYBOUNDARY____
push esi
call dword [sym.imp.WININET.dll_HttpSendRequestW]
test eax, eax
je 0x4024c2
push ebx
lea eax, [ebp - 0x52c]
mov dword [ebp - 0x52c], 8
push eax
lea eax, [ebp - 0x20]
push eax
push 0x13
push esi
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
lea eax, [ebp - 0x20]
push eax
call fcn.00423c00
pop ecx
mov ecx, 0xc8
cmp eax, ecx
je 0x4023cd
push 0x10
push str.ShareScreen
push str.Failed_to_upload__unexpected_result_code__under_maintainance__
jmp 0x4024ce
push 0x64
pop edi
push ecx
lea eax, [ebp - 0xe8]
mov dword [ebp - 0x524], edi
push ebx
push eax
call fcn.0041ea10
add esp, 0xc
lea eax, [ebp - 0xe8]
push str.X_Screen_Id
push edi
push eax
call fcn.00425eb1
add esp, 0xc
lea eax, [ebp - 0x524]
push ebx
push eax
lea eax, [ebp - 0xe8]
push eax
push 0xffff
push esi
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
mov dword [ebp - 0x4f0], ebx
mov dword [ebp - 0x4ec], 0xf
mov byte [ebp - 0x500], bl
mov byte [ebp - 4], 0xf
mov edi, dword [sym.imp.WININET.dll_InternetReadFile]
jmp 0x40245a
cmp dword [ebp - 0x520], 0
je 0x402474
push dword [ebp - 0x520]
lea eax, [ebp - 0x4e8]
push eax
lea ecx, [ebp - 0x500]
call fcn.004057e4
lea eax, [ebp - 0x520]
push eax
push 0x400
lea eax, [ebp - 0x4e8]
push eax
push esi
call edi
test eax, eax
jne 0x402439
push ebx
lea ecx, [ebp - 0x500]
call fcn.00403faa
cmp dword [ebp - 0x4ec], 0x10
lea ecx, [ebp - 0x500]
cmovae ecx, dword [ebp - 0x500]
call fcn.00401c78
cmp dword [ebp - 0x4ec], 0x10
lea ecx, [ebp - 0x500]
cmovae ecx, dword [ebp - 0x500]
call fcn.00401cda
lea ecx, [ebp - 0x500]
call fcn.0040588d
xor ebx, ebx
inc ebx
jmp 0x4024d5
push 0x10
push str.ShareScreen
push str.Failed_to_upload
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [ebp - 0x518]
call fcn.0040588d
lea ecx, [ebp - 0x610]
call fcn.0040266f
lea eax, [ebp - 0x610]
mov byte [ebp - 4], 0x12
mov esi, vtable.std::ios_base.0
push eax
mov dword [ebp - 0x610], esi
call fcn.00406338
pop ecx
lea ecx, [ebp - 0x578]
call fcn.00403081
lea eax, [ebp - 0x578]
mov dword [ebp - 4], 0x13
push eax
mov dword [ebp - 0x578], esi
call fcn.00406338
pop ecx
mov eax, ebx
call fcn.00407d6e
ret