Function at 0x401785
Capabilities:
Initialize winhttp library
Prepare http request
Receive http response

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xcc
mov dword [ebp - 0x84], sym.___gxx_personality_sj0
mov dword [ebp - 0x80], 0x4839da
lea eax, [ebp - 0x7c]
lea ebx, [ebp - 0x18]
mov dword [eax], ebx
mov edx, 0x401fad
mov dword [eax + 4], edx
mov dword [eax + 8], esp
lea eax, [ebp - 0x9c]
mov dword [esp], eax
call dbg._Unwind_SjLj_Register
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.A_WinHTTP_Example_Program_1.0
mov dword [ebp - 0x98], 0xffffffff
call sym._WinHttpOpen_20
sub esp, 0x14
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x401856
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
mov dword [ebp - 0xa0], eax
mov dword [esp + 4], str.Error_in_WinHttpOpen:
mov dword [esp], 0x48bfc0
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov esi, dword [ebp - 0xa0]
mov dword [esp], esi
mov ecx, eax
call method.std::ostream.operator___unsigned_long_
sub esp, 4
mov dword [esp], method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____
mov ecx, eax
call method.std::ostream.operator___std::ostream____std::ostream__
sub esp, 4
mov byte [ebp - 0xa0], 0
jmp 0x401f9b
mov dword [ebp - 0x98], 0xffffffff
mov ecx, dword [ebp + 8]
call method.std::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___.c_str___const
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x1bb
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
call sym._WinHttpConnect_16
sub esp, 0x10
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jne 0x4018f2
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
mov dword [ebp - 0xa0], eax
mov dword [esp + 4], str.Error_in_WinHttpConnect:
mov dword [esp], 0x48bfc0
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov edi, dword [ebp - 0xa0]
mov dword [esp], edi
mov ecx, eax
call method.std::ostream.operator___unsigned_long_
sub esp, 4
mov dword [esp], method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____
mov ecx, eax
call method.std::ostream.operator___std::ostream____std::ostream__
sub esp, 4
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
call sym._WinHttpCloseHandle_4
sub esp, 4
mov byte [ebp - 0xa0], 0
jmp 0x401f9b
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x98], 0xffffffff
mov ecx, eax
call method.std::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___.c_str___const
mov dword [esp + 0x18], 0x800000
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], str.POST
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._WinHttpOpenRequest_28
sub esp, 0x1c
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
jne 0x4019b6
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
mov dword [ebp - 0xa0], eax
mov dword [esp + 4], str.Error_in_WinHttpOpenRequest:
mov dword [esp], 0x48bfc0
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov ebx, dword [ebp - 0xa0]
mov dword [esp], ebx
mov ecx, eax
call method.std::ostream.operator___unsigned_long_
sub esp, 4
mov dword [esp], method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____
mov ecx, eax
call method.std::ostream.operator___std::ostream____std::ostream__
sub esp, 4
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._WinHttpCloseHandle_4
sub esp, 4
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
call sym._WinHttpCloseHandle_4
sub esp, 4
mov byte [ebp - 0xa0], 0
jmp 0x401f9b
lea eax, [ebp - 0x4e]
mov ecx, eax
call fcn.0044abf0
lea eax, [ebp - 0x54]
lea edx, [ebp - 0x4e]
mov dword [esp + 4], edx
mov dword [esp], str.Content_Type:_multipart_form_data__boundary___BOUNDARY_r_n
mov dword [ebp - 0x98], 1
mov ecx, eax
call method.std::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___.basic_string_wchar_t_const__std::allocator_wchar_t__const_
sub esp, 8
lea eax, [ebp - 0x4e]
mov ecx, eax
call sym.std::allocator_wchar_t_::allocator__
lea eax, [ebp - 0x4d]
mov ecx, eax
call fcn.0044ab90
lea eax, [ebp - 0x58]
lea edx, [ebp - 0x4d]
mov dword [esp + 4], edx
mov dword [esp], str.___BOUNDARY
mov dword [ebp - 0x98], 2
mov ecx, eax
call sym.std::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x4d]
mov ecx, eax
call sym.std::allocator_char_::allocator__
lea eax, [ebp - 0x4c]
lea edx, [ebp - 0x58]
mov dword [esp + 8], edx
mov dword [esp + 4], 0x48d130
mov dword [esp], eax
mov dword [ebp - 0x98], 4
call method.std::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____char_const__std::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea eax, [ebp - 0x5c]
mov dword [esp + 8], 0x48d133
lea edx, [ebp - 0x4c]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [ebp - 0x98], 5
call method.std::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x98], 6
mov ecx, eax
call fcn.00457a00
lea eax, [ebp - 0x39]
mov ecx, eax
call fcn.0044ab90
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x98], 7
mov ecx, eax
call method.std::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___.end___const
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp + 0x14]
mov ecx, eax
call method.std::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___.begin___const
mov ecx, eax
lea eax, [ebp - 0x40]
lea edx, [ebp - 0x39]
mov dword [esp + 8], edx
mov esi, dword [ebp - 0xa0]
mov dword [esp + 4], esi
mov dword [esp], ecx
mov ecx, eax
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string___gnu_cxx::__normal_iterator_wchar_t_const__std::basic_string_wchar_t__std::char_traits_wchar_t___std.allocator_wchar_t__________gnu_cxx::__normal_iterator_wchar_
sub esp, 0xc
lea eax, [ebp - 0x44]
lea edx, [ebp - 0x40]
mov dword [esp + 8], edx
mov dword [esp + 4], str.Content_Disposition:_form_data__name_file___filename_
mov dword [esp], eax
mov dword [ebp - 0x98], 8
call method.std::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____char_const__std::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea eax, [ebp - 0x48]
mov dword [esp + 8], 0x48d170
lea edx, [ebp - 0x44]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [ebp - 0x98], 9
call method.std::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
lea eax, [ebp - 0x5c]
lea edx, [ebp - 0x48]
mov dword [esp], edx
mov dword [ebp - 0x98], 0xa
mov ecx, eax
call fcn.00457bc0
sub esp, 4
lea eax, [ebp - 0x48]
mov dword [ebp - 0x98], 9
mov ecx, eax
call fcn.00457a00
lea eax, [ebp - 0x44]
mov dword [ebp - 0x98], 8
mov ecx, eax
call fcn.00457a00
lea eax, [ebp - 0x40]
mov dword [ebp - 0x98], 7
mov ecx, eax
call fcn.00457a00
lea eax, [ebp - 0x39]
mov ecx, eax
call sym.std::allocator_char_::allocator__
lea eax, [ebp - 0x5c]
mov dword [esp], str.Content_Type:_application_octet_stream_r_n_r_n
mov dword [ebp - 0x98], 0xb
mov ecx, eax
call method.std::string.operator_char_const_
sub esp, 4
lea eax, [ebp - 0x5c]
mov edx, dword [ebp + 0x10]
mov dword [esp], edx
mov ecx, eax
call fcn.00457bc0
sub esp, 4
lea eax, [ebp - 0x34]
lea edx, [ebp - 0x58]
mov dword [esp + 8], edx
mov dword [esp + 4], str._r_n__
mov dword [esp], eax
call method.std::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____char_const__std::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea eax, [ebp - 0x38]
mov dword [esp + 8], str.___r_n
lea edx, [ebp - 0x34]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [ebp - 0x98], 0xc
call method.std::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
lea eax, [ebp - 0x5c]
lea edx, [ebp - 0x38]
mov dword [esp], edx
mov dword [ebp - 0x98], 0xd
mov ecx, eax
call fcn.00457bc0
sub esp, 4
lea eax, [ebp - 0x38]
mov dword [ebp - 0x98], 0xc
mov ecx, eax
call fcn.00457a00
lea eax, [ebp - 0x34]
mov dword [ebp - 0x98], 0xb
mov ecx, eax
call fcn.00457a00
lea eax, [ebp - 0x5c]
mov ecx, eax
call method.std::string.size___const
mov dword [ebp - 0xa0], eax
lea eax, [ebp - 0x5c]
mov ecx, eax
call method.std::string.size___const
mov dword [ebp - 0xa4], eax
lea eax, [ebp - 0x5c]
mov ecx, eax
call method.std::string.c_str___const
mov dword [ebp - 0xa8], eax
lea eax, [ebp - 0x54]
mov ecx, eax
call method.std::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___.size___const
mov dword [ebp - 0xac], eax
lea eax, [ebp - 0x54]
mov ecx, eax
call method.std::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___.c_str___const
mov dword [esp + 0x18], 0
mov edi, dword [ebp - 0xa0]
mov dword [esp + 0x14], edi
mov ebx, dword [ebp - 0xa4]
mov dword [esp + 0x10], ebx
mov esi, dword [ebp - 0xa8]
mov dword [esp + 0xc], esi
mov edi, dword [ebp - 0xac]
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
call sym._WinHttpSendRequest_28
sub esp, 0x1c
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jne 0x401d13
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
mov dword [ebp - 0xa0], eax
mov dword [esp + 4], str.Error_in_WinHttpSendRequest:
mov dword [esp], 0x48bfc0
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov ebx, dword [ebp - 0xa0]
mov dword [esp], ebx
mov ecx, eax
call method.std::ostream.operator___unsigned_long_
sub esp, 4
mov dword [esp], method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____
mov ecx, eax
call method.std::ostream.operator___std::ostream____std::ostream__
sub esp, 4
jmp 0x401f20
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
mov dword [ebp - 0x98], 0xb
call sym._WinHttpReceiveResponse_8
sub esp, 8
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jne 0x401d86
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
mov dword [ebp - 0xa0], eax
mov dword [esp + 4], str.Error_in_WinHttpReceiveResponse:
mov dword [esp], 0x48bfc0
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov esi, dword [ebp - 0xa0]
mov dword [esp], esi
mov ecx, eax
call method.std::ostream.operator___unsigned_long_
sub esp, 4
mov dword [esp], method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____
mov ecx, eax
call method.std::ostream.operator___std::ostream____std::ostream__
sub esp, 4
jmp 0x401f20
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0x60], 0
lea eax, [ebp - 0x60]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
mov dword [ebp - 0x98], 0xb
call sym._WinHttpQueryDataAvailable_8
sub esp, 8
test eax, eax
sete al
test al, al
je 0x401e0f
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
mov dword [ebp - 0xa0], eax
mov dword [esp + 4], str.Error_in_WinHttpQueryDataAvailable:
mov dword [esp], 0x48bfc0
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov edi, dword [ebp - 0xa0]
mov dword [esp], edi
mov ecx, eax
call method.std::ostream.operator___unsigned_long_
sub esp, 4
mov dword [esp], method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____
mov ecx, eax
call method.std::ostream.operator___std::ostream____std::ostream__
sub esp, 4
mov eax, dword [ebp - 0x60]
add eax, 1
mov dword [esp], eax
mov dword [ebp - 0x98], 0xb
call sym.operator_new___unsigned_int_
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jne 0x401e3c
mov dword [ebp - 0x60], 0
jmp 0x401f15
mov eax, dword [ebp - 0x60]
add eax, 1
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sym._memset
mov eax, dword [ebp - 0x60]
lea edx, [ebp - 0x64]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
mov dword [ebp - 0x98], 0xb
call sym._WinHttpReadData_16
sub esp, 0x10
test eax, eax
sete al
test al, al
je 0x401ed6
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
mov dword [ebp - 0xa0], eax
mov dword [esp + 4], str.Error_in_WinHttpReadData:
mov dword [esp], 0x48bfc0
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov ebx, dword [ebp - 0xa0]
mov dword [esp], ebx
mov ecx, eax
call method.std::ostream.operator___unsigned_long_
sub esp, 4
mov dword [esp], method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____
mov ecx, eax
call method.std::ostream.operator___std::ostream____std::ostream__
sub esp, 4
jmp 0x401f04
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], eax
mov dword [esp], 0x48c140
mov dword [ebp - 0x98], 0xb
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov dword [esp], method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____
mov ecx, eax
call method.std::ostream.operator___std::ostream____std::ostream__
sub esp, 4
cmp dword [ebp - 0x30], 0
je 0x401f15
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sym.operator_delete___void_
mov eax, dword [ebp - 0x60]
test eax, eax
jne 0x401d9b
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
mov dword [ebp - 0x98], 0xb
call sym._WinHttpCloseHandle_4
sub esp, 4
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._WinHttpCloseHandle_4
sub esp, 4
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
call sym._WinHttpCloseHandle_4
sub esp, 4
cmp dword [ebp - 0x1c], 1
sete byte [ebp - 0xa0]
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x98], 4
mov ecx, eax
call fcn.00457a00
lea eax, [ebp - 0x58]
mov dword [ebp - 0x98], 3
mov ecx, eax
call fcn.00457a00
lea eax, [ebp - 0x54]
mov dword [ebp - 0x98], 0xffffffff
mov ecx, eax
call fcn.0044d4d0
movzx eax, byte [ebp - 0xa0]
mov byte [ebp - 0xa0], al
jmp 0x4021db
lea eax, [ebp - 0x9c]
mov dword [esp], eax
call sym.__Unwind_SjLj_Unregister
movzx eax, byte [ebp - 0xa0]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret