Function at 0x10004500
Capabilities:
Send data
Send data on socket
Send http request

Disassembly:
push ebx
push ebp
push esi
mov esi, dword [esp + 0x10]
push edi
test esi, esi
je 0x100047ce
test dword [esi + 0xdc], 0x2000
je 0x10004523
mov ecx, esi
call fcn.100026a0
test dword [esi + 0xdc], 8
mov edi, dword [esi + 0xb0]
mov ebp, dword [sym.imp.WS2_32.dll_closesocket]
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov byte [esi + 0xc0], 1
mov dword [esp + 0x14], edi
je 0x1000473f
cmp dword [esi + 0x64], 0
je 0x100046ba
xor ebx, ebx
cmp dword [esi + 0x78], ebx
jbe 0x100045bf
xor edi, edi
nop dword [eax]
nop word [eax + eax]
mov eax, dword [esi + 0x64]
mov byte [edi + eax + 0xc0], 1
mov eax, dword [esi + 0x64]
cmp dword [edi + eax + 0xb8], 0xffffffff
je 0x100045b3
push 0
push 1
push 0x10140b84
push dword [edi + eax + 0xbc]
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jg 0x100045b3
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x10004651
inc ebx
add edi, 0x118
cmp ebx, dword [esi + 0x78]
jb 0x10004570
xor ebx, ebx
cmp dword [esi + 0x78], ebx
jbe 0x10004637
xor edi, edi
nop dword [eax + eax]
mov eax, dword [esi + 0x64]
push 0xffffffffffffffff
push dword [edi + eax + 0x7c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x1000469c
mov eax, dword [esi + 0x64]
push dword [edi + eax + 0x7c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esi + 0x64]
mov eax, dword [edi + eax + 0xb8]
cmp eax, 0xffffffff
je 0x1000461a
push eax
call ebp
test eax, eax
mov eax, dword [esi + 0x64]
jne 0x1000466f
push dword [edi + eax + 0xbc]
call ebp
test eax, eax
jne 0x1000467e
mov eax, dword [esi + 0x64]
add eax, 0x98
add eax, edi
push eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
inc ebx
add edi, 0x118
cmp ebx, dword [esi + 0x78]
jb 0x100045d0
push dword [esi + 0x64]
call fcn.100a9867
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
add esp, 4
mov edi, dword [esp + 0x14]
jmp 0x10004746
push str.Failed_to_signal_shutdown_via_inter_thread_communication_channel.
push 0x18c6
push 0x10141680
push dword [0x10149f20]
call dword [0x10149f24]
add esp, 0x10
imul ecx, ebx, 0x118
push dword [ecx + eax + 0xbc]
call ebp
push 0x10140c64
push 0x18e0
push 0x10141730
push dword [0x10149f20]
call dword [0x10149f24]
add esp, 0x10
push 0x10140bdc
push 0x18d6
push 0x101416d8
push dword [0x10149f20]
call dword [0x10149f24]
add esp, 0x10
cmp dword [esi + 0xb8], 0xffffffff
je 0x10004707
push 0
push 1
push 0x10140cec
push dword [esi + 0xbc]
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jg 0x10004707
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x10004707
push str.Failed_to_signal_shutdown_via_inter_thread_communication_channel
push 0x18eb
push 0x10141830
push dword [0x10149f20]
call dword [0x10149f24]
add esp, 0x10
push 0xffffffffffffffff
push dword [esi + 0x7c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x10004721
push dword [esi + 0x7c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x10004746
push str.Failed_to_join_a_thread_n
push 0x18f9
push 0x10141888
push dword [0x10149f20]
call dword [0x10149f24]
add esp, 0x10
mov ecx, esi
call fcn.10004280
cmp edi, 0xffffffff
je 0x10004779
cmp byte [esi + 0xc1], 0
jne 0x10004779
push edi
call ebp
test eax, eax
je 0x10004779
push str.Close_socket_failed._n
push 0x1905
push 0x101418e0
push dword [0x10149f20]
call dword [0x10149f24]
add esp, 0x10
mov eax, dword [esi + 0xb8]
cmp eax, 0xffffffff
je 0x1000479c
push eax
call ebp
push dword [esi + 0xbc]
test eax, eax
jne 0x100047d3
call ebp
neg eax
sbb eax, eax
add eax, 1
je 0x100047d5
push dword [esi + 0xec]
call fcn.100a9867
add esp, 4
lea eax, [esi + 0xf0]
push eax
call ebx
lea eax, [esi + 0x80]
push eax
call ebx
lea eax, [esi + 0x98]
push eax
call ebx
push esi
call fcn.100a9867
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
ret
call ebp
push str.Failed_to_destroy_ITC._n
push 0x1908
push 0x10141938
push dword [0x10149f20]
call dword [0x10149f24]
add esp, 0x10
int3