Function at 0x1003aba0
Capabilities:
Get socket status
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x47c
push ebx
push esi
push edi
push ecx
lea edi, [ebp - 0x2fc]
mov ecx, 0xbf
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
pop ecx
mov eax, dword [0x1014f440]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0xc], ecx
mov ecx, 0x101c1d21
call fcn.1011c410
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x38], 1
jne 0x1003ac28
cmp dword [ebp + 8], 0
jle 0x1003ac23
mov eax, dword [ebp + 8]
cdq
mov ecx, 0x3e8
idiv ecx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 8]
cdq
mov ecx, 0x3e8
idiv ecx
imul edx, edx, 0x3e8
mov dword [ebp - 0x18], edx
mov esi, esp
lea eax, [ebp - 0x1c]
push eax
push 0
push 0
push 0
push 0
call dword [sym.imp.WS2_32.dll_select]
cmp esi, esp
call fcn.1011c3e0
jmp 0x1003b151
cmp dword [ebp + 8], 0
je 0x1003adc9
mov eax, dword [ebp + 8]
cdq
mov ecx, 0x3e8
idiv ecx
mov dword [ebp - 0x244], eax
mov eax, dword [ebp + 8]
cdq
mov ecx, 0x3e8
idiv ecx
imul edx, edx, 0x3e8
mov dword [ebp - 0x240], edx
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x234], 0
mov dword [ebp - 0x250], 0
jmp 0x1003ac89
mov eax, dword [ebp - 0x250]
add eax, 1
mov dword [ebp - 0x250], eax
mov eax, dword [ebp - 0x250]
cmp eax, dword [ebp - 0x128]
jae 0x1003acb0
mov eax, dword [ebp - 0x250]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp + eax*4 - 0x124]
cmp edx, dword [ecx + 0x34]
jne 0x1003acae
jmp 0x1003acb0
jmp 0x1003ac7a
mov eax, dword [ebp - 0x250]
cmp eax, dword [ebp - 0x128]
jne 0x1003ace9
cmp dword [ebp - 0x128], 0x40
jae 0x1003ace9
mov eax, dword [ebp - 0x250]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x34]
mov dword [ebp + eax*4 - 0x124], edx
mov eax, dword [ebp - 0x128]
add eax, 1
mov dword [ebp - 0x128], eax
xor eax, eax
jne 0x1003ac6e
mov ecx, dword [ebp - 0xc]
add ecx, 0x14
call fcn.1003b5f0
test eax, eax
je 0x1003ad7b
mov dword [ebp - 0x25c], 0
jmp 0x1003ad17
mov eax, dword [ebp - 0x25c]
add eax, 1
mov dword [ebp - 0x25c], eax
mov eax, dword [ebp - 0x25c]
cmp eax, dword [ebp - 0x234]
jae 0x1003ad3e
mov eax, dword [ebp - 0x25c]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp + eax*4 - 0x230]
cmp edx, dword [ecx + 0x34]
jne 0x1003ad3c
jmp 0x1003ad3e
jmp 0x1003ad08
mov eax, dword [ebp - 0x25c]
cmp eax, dword [ebp - 0x234]
jne 0x1003ad77
cmp dword [ebp - 0x234], 0x40
jae 0x1003ad77
mov eax, dword [ebp - 0x25c]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x34]
mov dword [ebp + eax*4 - 0x230], edx
mov eax, dword [ebp - 0x234]
add eax, 1
mov dword [ebp - 0x234], eax
xor eax, eax
jne 0x1003acfc
cmp dword [ebp + 8], 0
jle 0x1003ad8f
lea eax, [ebp - 0x244]
mov dword [ebp - 0x470], eax
jmp 0x1003ad99
mov dword [ebp - 0x470], 0
mov esi, esp
mov ecx, dword [ebp - 0x470]
push ecx
push 0
lea edx, [ebp - 0x234]
push edx
lea eax, [ebp - 0x128]
push eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x34]
add edx, 1
push edx
call dword [sym.imp.WS2_32.dll_select]
cmp esi, esp
call fcn.1011c3e0
mov eax, 1
test eax, eax
je 0x1003af3c
mov ecx, dword [ebp - 0xc]
add ecx, 4
call fcn.1003b5f0
mov dword [ebp - 0x268], eax
mov eax, dword [ebp - 0x268]
add eax, 0x5dc
push eax
mov ecx, dword [ebp - 0xc]
add ecx, 4
call fcn.1003b1d0
mov esi, esp
push 0
push 0x5dc
push 0
mov ecx, dword [ebp - 0xc]
add ecx, 4
call fcn.10036cf0
add eax, dword [ebp - 0x268]
push eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x34]
push ecx
call dword [sym.imp.WS2_32.dll_recv]
cmp esi, esp
call fcn.1011c3e0
mov dword [ebp - 0x274], eax
xor eax, eax
je 0x1003ae3e
jmp 0x1003af37
cmp dword [ebp - 0x274], 0
jge 0x1003ae8f
mov esi, esp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp esi, esp
call fcn.1011c3e0
cmp eax, 0x2733
je 0x1003ae73
mov esi, esp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp esi, esp
call fcn.1011c3e0
cmp eax, 0x2734
jne 0x1003ae8f
mov eax, dword [ebp - 0x268]
push eax
mov ecx, dword [ebp - 0xc]
add ecx, 4
call fcn.1003b1d0
jmp 0x1003af3c
cmp dword [ebp - 0x274], 0
jg 0x1003af1f
mov eax, dword [ebp - 0x268]
push eax
mov ecx, dword [ebp - 0xc]
add ecx, 4
call fcn.1003b1d0
mov esi, esp
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x34]
push ecx
call dword [sym.imp.WS2_32.dll_closesocket]
cmp esi, esp
call fcn.1011c3e0
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x38], 1
cmp dword [ebp - 0x274], 0
jge 0x1003aee3
mov dword [ebp - 0x470], str.Connection_error__n
jmp 0x1003aeed
mov dword [ebp - 0x470], str.Connection_closed__n
mov esi, esp
push 2
call dword [sym.imp.ucrtbased.dll___acrt_iob_func]
add esp, 4
cmp esi, esp
call fcn.1011c3e0
mov esi, esp
push eax
mov eax, dword [ebp - 0x470]
push eax
call dword [sym.imp.ucrtbased.dll_fputs]
add esp, 8
cmp esi, esp
call fcn.1011c3e0
jmp 0x1003af3c
mov eax, dword [ebp - 0x268]
add eax, dword [ebp - 0x274]
push eax
mov ecx, dword [ebp - 0xc]
add ecx, 4
call fcn.1003b1d0
jmp 0x1003adc9
mov ecx, dword [ebp - 0xc]
add ecx, 0x14
call fcn.1003b5f0
test eax, eax
je 0x1003b119
mov esi, esp
push 0
mov ecx, dword [ebp - 0xc]
add ecx, 0x14
call fcn.1003b5f0
push eax
push 0
mov ecx, dword [ebp - 0xc]
add ecx, 0x14
call fcn.10036cf0
push eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x34]
push ecx
call dword [sym.imp.WS2_32.dll_send]
cmp esi, esp
call fcn.1011c3e0
mov dword [ebp - 0x280], eax
xor eax, eax
je 0x1003af90
jmp 0x1003b114
cmp dword [ebp - 0x280], 0
jge 0x1003afcf
mov esi, esp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp esi, esp
call fcn.1011c3e0
cmp eax, 0x2733
je 0x1003afc5
mov esi, esp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp esi, esp
call fcn.1011c3e0
cmp eax, 0x2734
jne 0x1003afcf
jmp 0x1003b119
cmp dword [ebp - 0x280], 0
jg 0x1003b04f
mov esi, esp
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x34]
push ecx
call dword [sym.imp.WS2_32.dll_closesocket]
cmp esi, esp
call fcn.1011c3e0
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x38], 1
cmp dword [ebp - 0x280], 0
jge 0x1003b00d
mov dword [ebp - 0x470], str.Connection_error__n
jmp 0x1003b017
mov dword [ebp - 0x470], str.Connection_closed__n
mov esi, esp
push 2
call dword [sym.imp.ucrtbased.dll___acrt_iob_func]
add esp, 4
cmp esi, esp
call fcn.1011c3e0
mov esi, esp
push eax
mov eax, dword [ebp - 0x470]
push eax
call dword [sym.imp.ucrtbased.dll_fputs]
add esp, 8
cmp esi, esp
call fcn.1011c3e0
jmp 0x1003b119
sub esp, 0xc
mov esi, esp
mov dword [ebp - 0x40c], esp
mov eax, dword [ebp - 0x280]
push eax
lea ecx, [ebp - 0x434]
push ecx
lea edx, [ebp - 0x420]
push edx
mov ecx, dword [ebp - 0xc]
add ecx, 0x14
call fcn.10039550
mov dword [ebp - 0x470], eax
mov ecx, dword [ebp - 0x470]
call fcn.10036dc0
mov dword [ebp - 0x474], eax
mov eax, dword [ebp - 0x474]
push eax
mov ecx, esi
call fcn.10036250
sub esp, 0xc
mov esi, esp
mov dword [ebp - 0x440], esp
lea ecx, [ebp - 0x454]
push ecx
mov ecx, dword [ebp - 0xc]
add ecx, 0x14
call fcn.10039550
mov dword [ebp - 0x478], eax
mov edx, dword [ebp - 0x478]
push edx
mov ecx, esi
call fcn.10036250
lea eax, [ebp - 0x468]
push eax
mov ecx, dword [ebp - 0xc]
add ecx, 0x14
call fcn.10039c80
mov dword [ebp - 0x47c], eax
lea ecx, [ebp - 0x468]
call fcn.10036a50
lea ecx, [ebp - 0x454]
call fcn.10036a50
lea ecx, [ebp - 0x434]
call fcn.10036a50
lea ecx, [ebp - 0x420]
call fcn.10036a50
jmp 0x1003af3c
mov ecx, dword [ebp - 0xc]
add ecx, 0x14
call fcn.1003b5f0
test eax, eax
jne 0x1003b151
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x38], 0
jne 0x1003b151
mov esi, esp
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x34]
push ecx
call dword [sym.imp.WS2_32.dll_closesocket]
cmp esi, esp
call fcn.1011c3e0
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x38], 1
push edx
mov ecx, ebp
push eax
lea edx, [0x1003b184]
call fcn.1011c380
pop eax
pop edx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1011c450
add esp, 0x47c
cmp ebp, esp
call fcn.1011c3e0
mov esp, ebp
pop ebp
ret 4