Function at 0x10a72990
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Create tcp socket
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket
Send http request
Send http request with host header

Disassembly:
sub esp, 0xe4c
mov eax, dword [0x10c41080]
xor eax, dword [esp + reloc.ole32.dll_CoCreateGuid]
push edi
push 0x400
mov dword [esp + reloc.ole32.dll_CoCreateGuid], eax
lea eax, reloc.ole32.dll_CoCreateGuid
push str.http:__gsconnect.ubisoft.com_gsinit.php_dp_suser_s
push eax
call dword [sym.imp.MSVCR70.dll_strncpy]
mov edi, dword [esp + reloc.ole32.dll_CoCreateGuid]
add esp, 0xc
lea ecx, reloc.ole32.dll_CoCreateGuid
push ecx
lea edx, reloc.ole32.dll_CoCreateGuid
push edx
lea ecx, reloc.ole32.dll_CoCreateGuid
call fcn.10a79a70
test eax, eax
jne 0x10a729f3
or eax, reloc.ole32.dll_CoCreateGuid
jmp 0x10a72be2
push ebx
push esi
xor ebx, ebx
push ebx
call dword [sym.imp.MSVCR70.dll_time]
mov dword [edi + reloc.ole32.dll_CoCreateGuid], eax
add esp, 4
lea eax, reloc.ole32.dll_CoCreateGuid
push eax
call dword [sym.imp.WS2_32.dll_gethostbyname]
cmp eax, ebx
je 0x10a72a5d
mov word [esp + 0x10], 2
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx]
mov eax, dword [edx]
push 0x50
mov dword [esp + 0x18], eax
call sub.WS2_32.dll_htons
push 6
push 1
push 2
mov word [esp + 0x1e], ax
call sub.WS2_32.dll_socket
mov esi, eax
cmp esi, reloc.ole32.dll_CoCreateGuid
je 0x10a72a5d
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
cmp eax, ebx
mov dword [esp + 0xc], eax
jne 0x10a72a6b
push esi
call sub.WS2_32.dll_closesocket
mov dword [edi + reloc.ole32.dll_CoCreateGuid], ebx
or eax, reloc.ole32.dll_CoCreateGuid
jmp 0x10a72be0
push 0x31
push eax
push esi
call dword [sym.imp.WS2_32.dll_WSAEventSelect]
cmp eax, reloc.ole32.dll_CoCreateGuid
jne 0x10a72a99
push esi
call sub.WS2_32.dll_closesocket
mov ecx, dword [esp + 0xc]
push ecx
call dword [sym.imp.WS2_32.dll_WSACloseEvent]
mov dword [edi + reloc.ole32.dll_CoCreateGuid], ebx
or eax, reloc.ole32.dll_CoCreateGuid
jmp 0x10a72be0
push 0x10
lea edx, [esp + 0x14]
push edx
push esi
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, reloc.ole32.dll_CoCreateGuid
jne 0x10a72ad8
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x10a72ad8
push esi
call sub.WS2_32.dll_closesocket
mov eax, dword [esp + 0xc]
push eax
call dword [sym.imp.WS2_32.dll_WSACloseEvent]
mov dword [edi + reloc.ole32.dll_CoCreateGuid], ebx
or eax, reloc.ole32.dll_CoCreateGuid
jmp 0x10a72be0
mov ecx, dword [esp + reloc.ole32.dll_CoCreateGuid]
mov edi, dword [sym.imp.MSVCR70.dll__snprintf]
push ebp
push ecx
push str.SPLINTERCELL3PCADVERS
lea edx, reloc.ole32.dll_CoCreateGuid
push edx
lea eax, reloc.ole32.dll_CoCreateGuid
push 0xff
push eax
call edi
add esp, 0x14
lea ecx, reloc.ole32.dll_CoCreateGuid
push ecx
lea edx, reloc.ole32.dll_CoCreateGuid
push edx
push ebx
push str.GET__s_HTTP_1.1_r_nHOST:__s_r_n_r_n
call fcn.10914120
add esp, 8
push eax
lea eax, [esp + 0x5c]
push 0xff
push eax
call edi
mov edi, dword [sym.imp.WS2_32.dll_send]
mov ebp, dword [sym.imp.WS2_32.dll_recv]
add esp, 0x14
push ebx
push 0x2710
push ebx
lea ecx, [esp + 0x1c]
push ecx
push 1
call dword [sym.imp.WS2_32.dll_WSAWaitForMultipleEvents]
cmp eax, 0x102
je 0x10a72bbf
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x24]
push edx
push eax
push esi
call dword [sym.imp.WS2_32.dll_WSAEnumNetworkEvents]
cmp eax, reloc.ole32.dll_CoCreateGuid
je 0x10a72bbf
test byte [esp + 0x24], 0x10
je 0x10a72b98
lea eax, [esp + 0x50]
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x10a72b80
push ebx
sub eax, edx
push eax
lea ecx, [esp + 0x58]
push ecx
push esi
call edi
cmp eax, reloc.ole32.dll_CoCreateGuid
je 0x10a72bbf
test byte [esp + 0x24], 1
je 0x10a72bb8
mov edx, dword [esp + reloc.ole32.dll_CoCreateGuid]
mov eax, dword [esp + reloc.ole32.dll_CoCreateGuid]
push ebx
push edx
push eax
push esi
call ebp
cmp eax, reloc.ole32.dll_CoCreateGuid
je 0x10a72bbf
test byte [esp + 0x24], 0x20
je 0x10a72b40
push esi
call sub.WS2_32.dll_closesocket
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.WS2_32.dll_WSACloseEvent]
mov edx, dword [esp + reloc.ole32.dll_CoCreateGuid]
mov dword [edx + reloc.ole32.dll_CoCreateGuid], ebx
xor eax, eax
pop ebp
pop esi
pop ebx
mov ecx, dword [esp + reloc.ole32.dll_CoCreateGuid]
xor ecx, dword [esp + reloc.ole32.dll_CoCreateGuid]
pop edi
call fcn.10bc3501
add esp, 0xe4c
ret 0x10