Function at 0x100a0a80
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Create tcp socket
Print debug messages
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x1024c04b
push eax
mov eax, 0x2194
mov dword fs:[0], esp
call fcn.1006fb30
push ebx
push esi
mov esi, dword [ebp + 8]
or ebx, 0xffffffff
push edi
test esi, esi
jne 0x100a0ac2
or eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
mov dword [ebp - 0x34], 0
xor eax, eax
mov dword [ebp - 0x30], 7
mov word [ebp - 0x44], ax
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100a0ae0
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x44]
call fcn.1001a600
mov dword [ebp - 4], 0
mov edi, dword [sym.imp.WS2_32.dll_closesocket]
push 0x800
lea eax, [ebp - 0x99c]
mov esi, 1
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x119c]
push 0x800
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebp - 0x18], 0x50
cmp dword [ebp - 0x30], 8
lea ecx, [ebp - 0x119c]
lea eax, [ebp - 0x44]
cmovae eax, dword [ebp - 0x44]
push ecx
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [ebp - 0x99c]
push ecx
push eax
call sym.WMCommon.dll_private:_static_bool___cdecl_WM::GMHttpDownload::ParseUrl_wchar_t_const___wchar_t___unsigned_short_int___wchar_t__
add esp, 0x10
mov dword [ebp - 0x1c], 0xffffffff
cmp byte [sym.WMCommon.dll_bool_WM::GMSocket::m_isInitEnvironment], 0
jne 0x100a0b8e
lea ecx, [ebp - 0x2c]
call sym.WMCommon.dll_private:_bool___thiscall_WM::GMSocket::InitEnvironment_void_
movzx ecx, byte [sym.WMCommon.dll_bool_WM::GMSocket::m_isInitEnvironment]
test al, al
cmovne ecx, esi
mov byte [sym.WMCommon.dll_bool_WM::GMSocket::m_isInitEnvironment], cl
push 6
push 1
push 2
mov byte [ebp - 4], 1
call dword [sym.imp.WS2_32.dll_socket]
mov dword [ebp - 0x1c], eax
cmp eax, 0xffffffff
je 0x100a0ed7
xor eax, eax
mov dword [ebp - 0x64], 0
lea ecx, [ebp - 0x99c]
mov dword [ebp - 0x60], 7
mov word [ebp - 0x74], ax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100a0bc7
sub ecx, edx
lea eax, [ebp - 0x99c]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x74]
call fcn.1001a600
push 0
lea eax, [ebp - 0x74]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x5c]
push eax
call sym.WMCommon.dll_public:_static_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_WM::GMStringConvert::UnicodeStringToMultiByte_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___unsigned_int_
add esp, 0xc
lea eax, [ebp - 0x5c]
cmp dword [ebp - 0x48], 0x10
cmovae eax, dword [ebp - 0x5c]
push eax
call dword [sym.imp.WS2_32.dll_gethostbyname]
mov ecx, eax
test ecx, ecx
jne 0x100a0c18
xor esi, esi
jmp 0x100a0c3f
movsx eax, word [ecx + 0xa]
push eax
mov eax, dword [ecx + 0xc]
push dword [eax]
lea eax, [ebp - 0x98]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push dword [ebp - 0x98]
call dword [sym.imp.WS2_32.dll_inet_ntoa]
mov esi, eax
mov edx, dword [ebp - 0x48]
cmp edx, 0x10
jb 0x100a0c73
mov ecx, dword [ebp - 0x5c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100a0c69
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100a0ec8
push edx
push ecx
call fcn.1006e6d7
add esp, 8
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0xf
mov byte [ebp - 0x5c], 0
mov byte [ebp - 4], 1
call fcn.1001a5a0
test esi, esi
je 0x100a0ed4
mov edi, dword [sym.imp.WS2_32.dll_setsockopt]
lea eax, [ebp - 0x14]
push 4
push eax
push 0x1005
push 0xffff
push dword [ebp - 0x1c]
mov dword [ebp - 0x14], 0x1d4c0
call edi
push 4
lea eax, [ebp - 0x14]
push eax
push 0x1006
push 0xffff
push dword [ebp - 0x1c]
call edi
mov edi, dword [ebp - 0x18]
mov eax, 2
push edi
mov word [ebp - 0x2c], ax
call dword [sym.imp.WS2_32.dll_htons]
push esi
mov word [ebp - 0x2a], ax
call dword [sym.imp.WS2_32.dll_inet_addr]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x2c]
push 0x10
push eax
push dword [ebp - 0x1c]
call dword [sym.imp.WS2_32.dll_connect]
test eax, eax
jne 0x100a0ece
push 0x1000
push eax
lea eax, [ebp - 0x219c]
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x119c]
push 0
push eax
push edi
lea eax, [ebp - 0x99c]
push eax
lea eax, [ebp - 0x219c]
push eax
call sym.WMCommon.dll_private:_static_void___cdecl_WM::GMHttpDownload::SetRequest_char___wchar_t_const___unsigned_short_int__wchar_t_const___char_const__
lea ecx, [ebp - 0x219c]
add esp, 0x14
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100a0d46
push 0
sub ecx, edx
lea eax, [ebp - 0x219c]
push ecx
push eax
push dword [ebp - 0x1c]
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je 0x100a0ece
push 0x1000
lea eax, [ebp - 0x219c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x219c]
push 0
push 0x1000
push eax
push dword [ebp - 0x1c]
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
je 0x100a0ece
cmp eax, 0x1000
je 0x100a0dc5
lea eax, [ebp - 0x219c]
push str.404_Not_Found
push eax
call dword [sym.imp.VCRUNTIME140.dll_strstr]
add esp, 8
test eax, eax
jne 0x100a0ece
lea eax, [ebp - 0x219c]
push str.Location:
push eax
call dword [sym.imp.VCRUNTIME140.dll_strstr]
mov esi, eax
add esp, 8
test esi, esi
je 0x100a0ece
push 0xd
push esi
call dword [sym.imp.VCRUNTIME140.dll_strchr]
mov edi, eax
add esp, 8
test edi, edi
je 0x100a0ece
push 0xfa
lea eax, [ebp - 0x19c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x19c]
add esi, 0xa
sub edi, esi
push edi
push esi
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
add esp, 0xc
lea eax, [ebp - 0x19c]
push 0
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x8c]
push eax
call sym.WMCommon.dll_public:_static_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_WM::GMStringConvert::MultiByteToUnicodeString_char_const___int__unsigned_int_
add esp, 0x10
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x8c]
mov byte [ebp - 4], 3
cmp dword [ebp - 0x78], 8
cmovae eax, dword [ebp - 0x8c]
add esi, 0x800
mov edx, esi
sub edx, eax
movzx ecx, word [eax]
lea eax, [eax + 2]
mov word [edx + eax - 2], cx
test cx, cx
jne 0x100a0e63
mov ecx, esi
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100a0e80
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x44]
call fcn.1001a600
xor ebx, ebx
lea eax, [ebp - 0x44]
cmp dword [ebp - 0x30], 8
cmovae eax, dword [ebp - 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea ecx, [ebp - 0x8c]
call fcn.1001a5a0
push dword [ebp - 0x1c]
mov edi, dword [sym.imp.WS2_32.dll_closesocket]
call edi
jmp 0x100a0b06
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov edi, dword [sym.imp.WS2_32.dll_closesocket]
mov eax, dword [ebp - 0x1c]
push eax
call edi
lea ecx, [ebp - 0x44]
call fcn.1001a5a0
mov ecx, dword [ebp - 0xc]
mov eax, ebx
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret