Function at 0x426184
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, 0x42fcb3
call fcn.0041f1a0
mov eax, 0x218c
call fcn.0041f1f0
mov eax, dword [0x440200]
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 [0x4402c0]
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.00420b3f
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.00420a27
add esp, 0xc
cmp al, bl
jne 0x42623e
mov esi, 0x132b3a1
jmp 0x42660a
mov ecx, edi
mov dword [ebp - 0x2000], ebx
mov dword [ebp - 0x1ff8], ebx
mov dword [ebp - 0x1fec], ebx
call fcn.00426158
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 0x4262be
cmp dword [ebp - 0x1fb4], 0x10
mov eax, dword [ebp - 0x1fc8]
jae 0x42629b
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 0x4262cf
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1fec], eax
jmp 0x4265c0
cmp dword [esi + 0x50], 0x10
jb 0x4262da
mov edx, dword [esi + 0x3c]
jmp 0x4262dd
lea edx, [esi + 0x3c]
cmp dword [esi + 0x34], 0x10
jb 0x4262e8
mov ecx, dword [esi + 0x20]
jmp 0x4262eb
lea ecx, [esi + 0x20]
cmp dword [esi + 0x18], 0x10
jb 0x4262f6
mov eax, dword [esi + 4]
jmp 0x4262f9
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 0x426333
push ebx
push dword [ebp - 0x1ffc]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x4265ad
lea eax, [ebp - 0x2108]
push eax
lea ecx, [esi + 0x54]
call fcn.00420bb6
cmp dword [esi + 0x78], ebx
jne 0x42634f
mov dword [ebp - 0x1ff0], ebx
jmp 0x426363
cmp dword [esi + 0x7c], 0x10
jb 0x42635a
mov eax, dword [esi + 0x68]
jmp 0x42635d
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 0x426383
xor edi, edi
jmp 0x4263ae
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 0x4263ab
mov edi, dword [eax + 4]
jmp 0x4263ae
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 0x426406
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 0x42659f
mov edi, dword [ebp - 0x1ffc]
cmp edi, ebx
je 0x426438
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x4265ad
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 0x42659f
cmp edi, ebx
je 0x426488
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x4265ad
push 1
push dword [ebp - 0x2014]
lea eax, [ebp - 0x1fb0]
push eax
lea ecx, [ebp - 0x2198]
call fcn.0041fb42
mov edi, dword [ebp - 0x2008]
push ebx
lea eax, [ebp - 0x2198]
push edi
push eax
mov byte [ebp - 4], 7
call fcn.00421e9b
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 0x42659f
push dword [0x440230]
mov ecx, edi
call dword [0x431390]
mov eax, 0xc8
push eax
mov dword [edi + 0x1c], eax
lea eax, [ebp - 0x2034]
push eax
call fcn.0041fbf7
pop ecx
pop ecx
push eax
lea ecx, [edi + 0x20]
mov byte [ebp - 4], 8
call dword [0x43127c]
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 0x42657e
cmp dword [ebp - 0x1ff0], ebx
je 0x4265b7
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 0x42657e
push ebx
push dword [ebp - 0x1ffc]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x4265ad
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 0x426541
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1fec], eax
jmp 0x4265b7
mov dword [ebp - 0x1fec], 0x3e3
cmp dword [ebp - 0x1ff8], 0xffffffff
je 0x4265cc
push dword [ebp - 0x1ff8]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
cmp dword [ebp - 0x2000], ebx
je 0x4265e0
push dword [ebp - 0x2000]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
cmp dword [ebp - 0x2004], ebx
je 0x4265f4
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.0041ef93
leave
ret