Function at 0x411690
Capabilities:
Check for time delay via gettickcount
Get socket status
Send data
Send data on socket
Send http request

Disassembly:
sub esp, 0x118
push ebx
push ebp
push esi
mov esi, eax
mov ebx, ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
test esi, esi
mov dword [esp + 0xc], eax
mov ebp, esi
jle 0x41179c
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0xc]
cmp eax, dword [edi + 0xc]
jg 0x411869
mov eax, dword [edi]
cmp dword [eax + 0xc0], 0
jne 0x4117a8
mov ecx, dword [edi + 4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x34]
call eax
test eax, eax
jne 0x411823
mov ecx, dword [edi + 8]
push eax
push ebp
push ebx
push ecx
call dword [sym.imp.WS2_32.dll_send]
mov esi, eax
test esi, esi
jg 0x411790
cmp esi, 0xffffffff
jne 0x4118af
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x4118af
mov eax, dword [edi + 8]
lea edx, [esp + 0x10]
push edx
push 0
mov dword [esp + 0x24], eax
lea eax, [esp + 0x20]
push eax
mov ecx, 1
push 0
push 0
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], ecx
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
jge 0x411794
call fcn.0040aad0
cmp byte [eax + 0x39], 0
je 0x41177a
call fcn.0040aad0
call fcn.0040a090
test al, al
je 0x41177a
push str.Send__WaitData_Error.
lea ecx, [esi + 0xf]
mov edx, str..HttpSocket.cpp
call fcn.0040a820
add esp, 4
mov esi, edi
call fcn.00411b50
mov eax, 1
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
sub ebp, esi
add ebx, esi
test ebp, ebp
jg 0x4116b1
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
call fcn.0040aad0
cmp byte [eax + 0x39], 0
je 0x411823
call fcn.0040aad0
mov esi, eax
mov eax, dword [esi + 0x34]
mov ecx, eax
and ecx, reloc.WS2_32.dll_ntohs
jns 0x4117cc
dec ecx
or ecx, 0xfffffff0
inc ecx
lea eax, [eax + 1]
mov dword [esi + 0x34], eax
jne 0x4117fa
lea ebp, [esi + 0xc]
push ebp
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea edx, [esi + 0x24]
push edx
call fcn.00409ea0
test al, al
mov byte [esi + 0x38], al
je 0x4117f3
call fcn.0040a0f0
push ebp
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp byte [esi + 0x30], 0
jne 0x41180c
cmp byte [esi + 0x31], 0
jne 0x41180c
cmp byte [esi + 0x38], 0
je 0x411823
push str.IsCanceled_TRUE
mov ecx, 0xe
mov edx, str..HttpSocket.cpp
call fcn.0040a820
add esp, 4
call fcn.0040aad0
cmp byte [eax + 0x39], 0
je 0x411853
call fcn.0040aad0
call fcn.0040a090
test al, al
je 0x411853
push str.Send__send_data_cancel
mov ecx, 0xe
mov edx, str..HttpSocket.cpp
call fcn.0040a820
add esp, 4
mov esi, edi
call fcn.00411b50
mov eax, 1
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
call fcn.0040aad0
cmp byte [eax + 0x39], 0
je 0x411899
call fcn.0040aad0
call fcn.0040a090
test al, al
je 0x411899
push str.Send__send_timeout
mov ecx, 0xe
mov edx, str..HttpSocket.cpp
call fcn.0040a820
add esp, 4
mov esi, edi
call fcn.00411b50
mov eax, 2
pop esi
pop ebp
pop ebx
add esp, 0x118
ret
call fcn.0040aad0
cmp byte [eax + 0x39], 0
je 0x4118e7
call fcn.0040aad0
call fcn.0040a090
test al, al
je 0x4118e7
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push esi
push str.Send__iRet_d__LastError_d
mov ecx, 0xe
mov edx, str..HttpSocket.cpp
call fcn.0040a820
add esp, 0xc
mov esi, edi
call fcn.00411b50
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x118
ret