Function at 0x4593f0
Capabilities:
Send data
Send data on socket
Set socket configuration

Disassembly:
sub esp, 0xc
push esi
push edi
mov edi, dword [esp + 0x20]
test edi, edi
mov esi, ecx
mov dword [0x58b764], 0xb4
jne 0x459413
mov dword [esp + 0x20], 0x7fff
jmp 0x459435
cmp edi, 0x3e8
jae 0x459425
mov dword [esp + 0x20], 0x3e8
jmp 0x459435
cmp edi, 0x1e8480
jbe 0x459439
mov dword [esp + 0x20], 0x1e8480
mov edi, dword [esp + 0x20]
mov eax, dword [esi + 0x118]
test eax, eax
mov dword [esi + 0x120], 0
mov dword [esp + 0xc], eax
jne 0x459459
mov dword [esp + 0xc], 0x1499700
cmp dword [esi + 0xa4], 0xffffffff
jne 0x45947c
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
push str.No_socket_exists_for_sending__2b_
call edx
pop edi
xor al, al
pop esi
add esp, 0xc
ret 0x18
mov dword [0x58b764], 0xb5
mov eax, dword [esi + 0xa4]
cmp eax, 0xffffffff
je 0x4594aa
lea ecx, [esp + 0x10]
push ecx
push 0x8004667e
push eax
mov dword [esp + 0x1c], 1
call dword [sym.imp.WS2_32.dll_ioctlsocket]
mov eax, dword [esp + 0x1c]
test eax, eax
push ebx
push ebp
je 0x459685
mov ebx, dword [esp + 0x34]
jmp 0x4594c8
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
cmp edi, eax
mov dword [esp + 0x18], edi
jbe 0x4594d4
mov dword [esp + 0x18], eax
test ebx, ebx
je 0x4594fb
mov edx, dword [esp + 0x2c]
push 0x174
push edx
mov ecx, ebx
mov dword [0x58b764], 0xb8
call fcn.0044e7f0
test al, al
jne 0x4596ac
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x34]
push eax
push ebx
lea ebp, [esi + 0xc8]
push ecx
mov ecx, ebp
mov dword [0x58b764], 0xb9
mov byte [esp + 0x40], 0
call fcn.004b66b0
cmp byte [esp + 0x34], 0
jne 0x4596c8
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
push 0
push edx
mov dword [0x58b764], 0xba
mov ecx, dword [esi + 0xa4]
push eax
push ecx
mov dword [esi + 0x120], 0
call dword [sym.imp.WS2_32.dll_send]
mov edi, eax
cmp edi, 0xffffffff
jne 0x4595fa
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
mov dword [esi + 0x120], eax
jne 0x459735
mov ebp, dword [esp + 0x30]
lea edx, [esp + 0x12]
push edx
lea eax, [esp + 0x15]
push eax
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x1f]
push edx
push ebx
push ebp
push 0
push eax
push 0
push ecx
mov ecx, esi
mov byte [esp + 0x38], 0
mov byte [esp + 0x39], 0
mov dword [0x58b764], 0xbd
call fcn.00458c40
test al, al
jne 0x459627
mov ecx, esi
mov dword [0x58b764], 0xbe
call fcn.00457f30
cmp byte [esp + 0x10], 0
je 0x4596e4
mov eax, dword [ebp]
mov edx, dword [eax + 0x10]
push str.Socket_send_aborted_by_application
mov ecx, ebp
call edx
pop ebp
pop ebx
pop edi
xor al, al
pop esi
add esp, 0xc
ret 0x18
test edi, edi
jle 0x459623
push edi
mov ecx, ebp
mov dword [0x58b764], 0xc0
call fcn.004b6650
cmp byte [esi + 0x184], 0
je 0x459623
push ebx
push edi
lea ecx, [esi + 0x58]
call fcn.004b6af0
mov ebp, dword [esp + 0x30]
test ebx, ebx
je 0x459656
test edi, edi
jle 0x459662
lea edx, [esp + 0x10]
push edx
push edi
mov ecx, ebx
mov byte [esp + 0x18], 0
mov dword [0x58b764], 0xc8
call fcn.0044eb10
cmp byte [esp + 0x10], 0
jne 0x4597a7
test edi, edi
jle 0x459662
sub dword [esp + 0x24], edi
add dword [esp + 0x20], edi
test edi, edi
mov dword [0x58b764], 0xcd
jne 0x45967a
push 1
call fcn.0041e160
add esp, 4
cmp dword [esp + 0x24], 0
jne 0x4594c0
mov ecx, esi
mov dword [0x58b764], 0xc2
call fcn.00457f30
pop ebp
pop ebx
pop edi
mov dword [0x58b764], 0xc3
mov al, 1
pop esi
add esp, 0xc
ret 0x18
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
push str.Socket_SendBytes2_aborted_by_application.__1a_
call edx
pop ebp
pop ebx
pop edi
xor al, al
pop esi
add esp, 0xc
ret 0x18
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
push str.Aborted_by_application_while_upload_throttling__1b_
call edx
pop ebp
pop ebx
pop edi
xor al, al
pop esi
add esp, 0xc
ret 0x18
cmp byte [esp + 0x11], 0
je 0x45971a
mov ecx, dword [esp + 0x14]
mov eax, dword [ebp]
mov edx, dword [eax + 0x2c]
push ecx
push str.idleTimeoutMs
mov ecx, ebp
call edx
mov eax, dword [ebp]
mov edx, dword [eax + 0x10]
push str.Socket_send_idle_timeout
mov ecx, ebp
call edx
pop ebp
pop ebx
pop edi
xor al, al
pop esi
add esp, 0xc
ret 0x18
mov eax, dword [ebp]
mov edx, dword [eax + 0x10]
push str.Socket_send_failed
mov ecx, ebp
call edx
pop ebp
pop ebx
pop edi
xor al, al
pop esi
add esp, 0xc
ret 0x18
mov edi, dword [esp + 0x30]
push edi
push eax
mov dword [0x58b764], 0xbf
call fcn.00458120
mov eax, dword [edi]
mov edx, dword [eax + 0x10]
add esp, 8
push str.Error_sending_on_socket
mov ecx, edi
call edx
mov ecx, dword [esp + 0x18]
mov eax, dword [edi]
mov edx, dword [eax + 0x2c]
push ecx
push str.send_size
mov ecx, edi
call edx
mov eax, dword [esi + 0xa4]
push 2
push eax
call dword [sym.imp.WS2_32.dll_shutdown]
mov ecx, dword [esi + 0xa4]
push ecx
call dword [sym.imp.WS2_32.dll_closesocket]
pop ebp
pop ebx
pop edi
mov dword [esi + 0xa4], 0xffffffff
mov byte [esi + 0xa0], 0
xor al, al
pop esi
add esp, 0xc
ret 0x18
mov ecx, esi
mov dword [0x58b764], 0xca
call fcn.00457f30
mov dword [0x58b764], 0xcc
mov edx, dword [ebp]
mov eax, dword [edx + 0x10]
push str.Socket_send_aborted_by_application
mov ecx, ebp
call eax
pop ebp
pop ebx
pop edi
xor al, al
pop esi
add esp, 0xc
ret 0x18