Function at 0x4253f5
Capabilities:
Connect to http server
Create http request
Read data from internet
Receive data
Resolve function by parsing pe exports
Send data
Send http request

Disassembly:
mov eax, 0x44f290
call fcn.0044b2e0
mov eax, 0x218c
call fcn.0044b320
mov eax, dword [0x464b24]
push ebx
push esi
mov esi, dword [ebp + 8]
xor eax, ebp
push edi
mov edi, dword [ebp + 0xc]
xor ebx, ebx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x2010], ebx
push dword [0x464688]
lea ecx, [ebp - 0x2050]
mov dword [ebp - 0x2008], edi
mov dword [ebp - 0x1ffc], eax
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
lea eax, [ebp - 0x2050]
push eax
lea eax, [ebp - 0x1fe8]
lea ecx, [esi + 0x54]
push eax
mov dword [ebp - 4], ebx
call fcn.00424b6e
lea ecx, [ebp - 0x2050]
mov byte [ebp - 4], 2
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x1fcc]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
lea eax, [ebp - 0x200c]
push eax
lea eax, [ebp - 0x1fcc]
push eax
lea eax, [ebp - 0x1fe8]
push eax
mov byte [ebp - 4], 3
mov dword [ebp - 0x200c], ebx
call fcn.00424a56
add esp, 0xc
cmp al, bl
jne 0x4254af
mov esi, 0x132b3a1
jmp 0x42587b
mov ecx, edi
mov dword [ebp - 0x2000], ebx
mov dword [ebp - 0x1ff8], ebx
mov dword [ebp - 0x1fec], ebx
call fcn.004253d1
xor edi, edi
inc edi
push edi
push 2
lea ecx, [ebp - 0x2108]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_int_]
push ebx
push ebx
push ebx
push ebx
push str.Xunlei_Http_Request
mov byte [ebp - 4], 4
call dword [sym.imp.WININET.dll_InternetOpenA]
cmp eax, ebx
mov dword [ebp - 0x2004], eax
je 0x42552f
cmp dword [ebp - 0x1fb4], 0x10
mov eax, dword [ebp - 0x1fc8]
jae 0x42550c
lea eax, [ebp - 0x1fc8]
push ebx
push ebx
push 3
push ebx
push ebx
push dword [ebp - 0x200c]
push eax
push dword [ebp - 0x2004]
call dword [sym.imp.WININET.dll_InternetConnectA]
cmp eax, ebx
mov dword [ebp - 0x2000], eax
jne 0x425540
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1fec], eax
jmp 0x425831
cmp dword [esi + 0x50], 0x10
jb 0x42554b
mov edx, dword [esi + 0x3c]
jmp 0x42554e
lea edx, [esi + 0x3c]
cmp dword [esi + 0x34], 0x10
jb 0x425559
mov ecx, dword [esi + 0x20]
jmp 0x42555c
lea ecx, [esi + 0x20]
cmp dword [esi + 0x18], 0x10
jb 0x425567
mov eax, dword [esi + 4]
jmp 0x42556a
lea eax, [esi + 4]
push ebx
push 0x84080100
push ebx
push ebx
push edx
push ecx
push eax
push dword [ebp - 0x2000]
call dword [sym.imp.WININET.dll_HttpOpenRequestA]
cmp dword [ebp - 0x1ffc], ebx
mov dword [ebp - 0x1ff8], eax
je 0x4255a4
push ebx
push dword [ebp - 0x1ffc]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x42581e
lea eax, [ebp - 0x2108]
push eax
lea ecx, [esi + 0x54]
call fcn.00424bb8
cmp dword [esi + 0x78], ebx
jne 0x4255c0
mov dword [ebp - 0x1ff0], ebx
jmp 0x4255d4
cmp dword [esi + 0x7c], 0x10
jb 0x4255cb
mov eax, dword [esi + 0x68]
jmp 0x4255ce
lea eax, [esi + 0x68]
mov dword [ebp - 0x1ff0], eax
lea eax, [ebp - 0x2034]
push eax
lea ecx, [ebp - 0x2108]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__::str_void_]
cmp dword [eax + 0x14], ebx
mov byte [ebp - 4], 5
jne 0x4255f4
xor edi, edi
jmp 0x42561f
lea eax, [ebp - 0x2088]
push eax
lea ecx, [ebp - 0x2108]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__::str_void_]
cmp dword [eax + 0x18], 0x10
mov byte [ebp - 4], 6
mov dword [ebp - 0x2010], edi
jb 0x42561c
mov edi, dword [eax + 4]
jmp 0x42561f
lea edi, [eax + 4]
lea eax, [ebp - 0x206c]
push eax
lea ecx, [ebp - 0x2108]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__::str_void_]
mov esi, dword [esi + 0x78]
mov eax, dword [eax + 0x14]
push esi
push dword [ebp - 0x1ff0]
push eax
push edi
push dword [ebp - 0x1ff8]
call dword [sym.imp.WININET.dll_HttpSendRequestA]
lea ecx, [ebp - 0x206c]
mov esi, eax
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
test byte [ebp - 0x2010], 1
mov dword [ebp - 4], 5
je 0x425677
lea ecx, [ebp - 0x2088]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x2034]
mov byte [ebp - 4], 4
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
cmp esi, ebx
je 0x425810
mov edi, dword [ebp - 0x1ffc]
cmp edi, ebx
je 0x4256a9
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x42581e
lea eax, [ebp - 0x2018]
push eax
lea eax, [ebp - 0x2014]
push eax
lea eax, [ebp - 0x1fb0]
push eax
push 0x16
push dword [ebp - 0x1ff8]
mov esi, 0x1fa0
mov dword [ebp - 0x2014], esi
mov dword [ebp - 0x2018], ebx
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
cmp eax, ebx
je 0x425810
cmp edi, ebx
je 0x4256f9
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x42581e
push 1
push dword [ebp - 0x2014]
lea eax, [ebp - 0x1fb0]
push eax
lea ecx, [ebp - 0x2198]
call fcn.00417f29
mov edi, dword [ebp - 0x2008]
push ebx
lea eax, [ebp - 0x2198]
push edi
push eax
mov byte [ebp - 4], 7
call fcn.00425228
add esp, 0xc
lea ecx, [ebp - 0x213c]
mov byte [ebp - 0x1ff1], al
mov byte [ebp - 4], 4
call dword [sym.imp.MSVCP71.dll_public_virtual:_void___thiscall_std::istrstream::destructor_void_]
mov eax, dword [sym.imp.MSVCP71.dll_const_std::basic_ios_char__struct_std::char_traits_char__::vftable]
lea ecx, [ebp - 0x213c]
mov dword [ebp - 0x213c], eax
call dword [sym.imp.MSVCP71.dll_public_virtual:_void___thiscall_std::ios_base::destructor_void_]
cmp byte [ebp - 0x1ff1], bl
je 0x425810
push dword [0x4645f8]
mov ecx, edi
call dword [0x451350]
mov eax, 0xc8
push eax
mov dword [edi + 0x1c], eax
lea eax, [ebp - 0x2034]
push eax
call fcn.00424585
pop ecx
pop ecx
push eax
lea ecx, [edi + 0x20]
mov byte [ebp - 4], 8
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [ebp - 0x2034]
mov byte [ebp - 4], 4
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov edi, dword [sym.imp.WININET.dll_InternetReadFile]
jmp 0x4257ef
cmp dword [ebp - 0x1ff0], ebx
je 0x425828
push dword [ebp - 0x1ff0]
mov ecx, dword [ebp - 0x2008]
lea eax, [ebp - 0x1fb0]
push eax
add ecx, 0x4c
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
cmp dword [ebp - 0x1ffc], ebx
je 0x4257ef
push ebx
push dword [ebp - 0x1ffc]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x42581e
lea eax, [ebp - 0x1ff0]
push eax
push esi
lea eax, [ebp - 0x1fb0]
push eax
push dword [ebp - 0x1ff8]
mov dword [ebp - 0x1ff0], ebx
call edi
cmp eax, ebx
jne 0x4257b2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1fec], eax
jmp 0x425828
mov dword [ebp - 0x1fec], 0x3e3
cmp dword [ebp - 0x1ff8], 0xffffffff
je 0x42583d
push dword [ebp - 0x1ff8]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
cmp dword [ebp - 0x2000], ebx
je 0x425851
push dword [ebp - 0x2000]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
cmp dword [ebp - 0x2004], ebx
je 0x425865
push dword [ebp - 0x2004]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
lea ecx, [ebp - 0x2108]
mov byte [ebp - 4], 3
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__::vbase_dtor_void_]
mov esi, dword [ebp - 0x1fec]
lea ecx, [ebp - 0x1fcc]
mov byte [ebp - 4], 2
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1fe8]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.0044b2c4
leave
ret