Function at 0x100a14f0
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
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 0x1024c087
push eax
mov eax, 0x105c
mov dword fs:[0], esp
call fcn.1006fb30
cmp byte [sym.WMCommon.dll_bool_WM::GMSocket::m_isInitEnvironment], 0
push ebx
push esi
push edi
mov dword [ebp - 0x14], 0xffffffff
jne 0x100a1544
lea ecx, [ebp - 0x24]
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
mov edx, 1
cmovne ecx, edx
mov byte [sym.WMCommon.dll_bool_WM::GMSocket::m_isInitEnvironment], cl
push 6
push 1
push 2
mov dword [ebp - 4], 0
call dword [sym.imp.WS2_32.dll_socket]
mov dword [ebp - 0x14], eax
cmp eax, 0xffffffff
je 0x100a180d
mov edi, dword [ebp + 8]
xor eax, eax
mov ecx, edi
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 7
mov word [ebp - 0x54], ax
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100a1580
sub ecx, edx
sar ecx, 1
push ecx
push edi
lea ecx, [ebp - 0x54]
call fcn.1001a600
push 0
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 1
push eax
lea eax, [ebp - 0x3c]
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
cmp dword [eax + 0x14], 0x10
jb 0x100a15b7
mov eax, dword [eax]
push eax
call dword [sym.imp.WS2_32.dll_gethostbyname]
mov ecx, eax
test ecx, ecx
jne 0x100a15c8
xor ebx, ebx
jmp 0x100a15e9
movsx eax, word [ecx + 0xa]
push eax
mov eax, dword [ecx + 0xc]
push dword [eax]
lea eax, [ebp - 0x60]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push dword [ebp - 0x60]
call dword [sym.imp.WS2_32.dll_inet_ntoa]
mov ebx, eax
mov edx, dword [ebp - 0x28]
cmp edx, 0x10
jb 0x100a161f
mov ecx, dword [ebp - 0x3c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100a1615
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100a1615
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.1006e6d7
add esp, 8
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
mov byte [ebp - 0x3c], 0
mov byte [ebp - 4], 0
call fcn.1001a5a0
test ebx, ebx
je 0x100a180a
mov esi, dword [sym.imp.WS2_32.dll_setsockopt]
lea eax, [ebp + 8]
push 4
push eax
push 0x1005
push 0xffff
push dword [ebp - 0x14]
mov dword [ebp + 8], 0x1d4c0
call esi
push 4
lea eax, [ebp + 8]
push eax
push 0x1006
push 0xffff
push dword [ebp - 0x14]
call esi
movzx eax, word [edi + 0x1000]
mov ecx, 2
push eax
mov word [ebp - 0x24], cx
call dword [sym.imp.WS2_32.dll_htons]
push ebx
mov word [ebp - 0x22], ax
call dword [sym.imp.WS2_32.dll_inet_addr]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x24]
push 0x10
push eax
push dword [ebp - 0x14]
call dword [sym.imp.WS2_32.dll_connect]
test eax, eax
jne 0x100a180a
push 0x1000
push eax
lea eax, [ebp - 0x1064]
push eax
call sub.VCRUNTIME140.dll_memset
movzx eax, word [edi + 0x1000]
lea ebx, [edi + 0x800]
add esp, 0xc
push 0x10266e94
push ebx
push eax
lea eax, [ebp - 0x1064]
push edi
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 - 0x1064]
add esp, 0x14
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100a1700
push 0
sub ecx, edx
lea eax, [ebp - 0x1064]
push ecx
push eax
push dword [ebp - 0x14]
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je 0x100a180a
push 0x1000
lea eax, [ebp - 0x1064]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov esi, dword [sym.imp.WS2_32.dll_recv]
lea eax, [ebp - 0x1064]
add esp, 0xc
push 0
push 0x1000
push eax
push dword [ebp - 0x14]
call esi
cmp eax, 0xffffffff
je 0x100a180a
push 1
lea ecx, [ebp - 0x1064]
push ecx
push eax
call sym.WMCommon.dll_private:_static_unsigned_long_long_unsigned___int64____cdecl_WM::GMHttpDownload::ParseContentLength_int__char___bool_
mov ecx, eax
add esp, 0xc
and ecx, edx
cmp ecx, 0xffffffff
jne 0x100a182a
movzx eax, word [edi + 0x1000]
push 0
push ebx
push eax
lea eax, [ebp - 0x1064]
push edi
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 - 0x1064]
add esp, 0x14
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100a17a0
push 0
sub ecx, edx
lea eax, [ebp - 0x1064]
push ecx
push eax
push dword [ebp - 0x14]
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je 0x100a180a
push 0x1000
lea eax, [ebp - 0x1064]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x1064]
push 0
push 0x1000
push eax
push dword [ebp - 0x14]
call esi
cmp eax, 0xffffffff
je 0x100a180a
push 0
lea ecx, [ebp - 0x1064]
push ecx
push eax
call sym.WMCommon.dll_private:_static_unsigned_long_long_unsigned___int64____cdecl_WM::GMHttpDownload::ParseContentLength_int__char___bool_
mov ecx, eax
add esp, 0xc
and ecx, edx
cmp ecx, 0xffffffff
jne 0x100a1831
mov eax, dword [ebp - 0x14]
or esi, 0xffffffff
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [edi + 0x1010], 1
mov dword [edi + 0x1008], eax
xor esi, esi
mov eax, dword [ebp - 0x14]
mov dword [edi + 0x100c], edx
jmp 0x100a1810