Function at 0x4038f0
Capabilities:
Get socket status
Receive data
Receive data on socket
Send data
Send data on socket
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x120
push ebx
mov ebx, dword [sym.imp.WS2_32.dll_send]
push ebp
mov ebp, dword [sym.imp.WS2_32.dll_select]
push esi
push edi
mov esi, ecx
xor edi, edi
cmp edi, 0xa
jge 0x403ae4
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 4]
push 0
push ecx
push edx
push eax
inc edi
call ebx
mov eax, dword [esi + 4]
lea ecx, [esp + 0x18]
push ecx
push 0
push 0
lea edx, [esp + 0x34]
mov dword [esp + 0x38], eax
push edx
inc eax
push eax
mov dword [esp + 0x3c], 1
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0x3d090
call ebp
cmp eax, 0xffffffff
je 0x4039a0
test eax, eax
je 0x403910
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 4]
push 0
push ecx
push edx
push eax
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jge 0x4039be
push 0x17e
push str.srcPerfSocket_UDP.cpp
push 0x4158b0
call fcn.00406bf0
add esp, 0xc
push 1
call fcn.004095b8
push 0x176
push str.srcPerfSocket_UDP.cpp
push 0x415a48
call fcn.00406bf0
add esp, 0xc
push 1
call fcn.004095b8
cmp eax, 0x34
jl 0x403af6
mov edi, dword [esi + 0x10]
mov ecx, dword [edi + 0xc]
mov ebx, dword [sym.imp.WS2_32.dll_ntohl]
add edi, 0xc
push ecx
call ebx
test eax, eax
jns 0x403af6
mov edx, dword [edi + 0x20]
push edx
call ebx
test eax, eax
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
jge 0x4039f9
fadd qword [0x415a40]
fstp qword [esi + 0x30]
mov eax, dword [edi + 0x24]
push eax
call ebx
test eax, eax
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
jge 0x403a14
fadd qword [0x415a40]
fmul qword [0x415378]
push 0xffffffffffffffff
fadd qword [esi + 0x30]
fstp qword [esi + 0x30]
mov ecx, dword [0x41af50]
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [esi + 4]
push edx
push str.__3d__Server_Report:_n
call fcn.004090a5
mov eax, dword [edi + 0x1c]
add esp, 8
push eax
call ebx
mov ecx, dword [edi + 0x18]
push eax
push ecx
call ebx
mov edx, dword [edi + 0x14]
push eax
push edx
call ebx
push eax
mov eax, dword [edi + 0x10]
push eax
call ebx
test eax, eax
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
jge 0x403a6d
fadd qword [0x415a40]
fmul qword [0x415378]
mov ecx, dword [edi + 0xc]
push ecx
fstp qword [esp + 0x30]
call ebx
test eax, eax
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
jge 0x403a8f
fadd qword [0x415a40]
fadd qword [esp + 0x2c]
mov edx, dword [edi + 4]
sub esp, 8
fstp qword [esp]
push 0
push 0
push edx
call ebx
push 1
push 0
push 0
push eax
call fcn.00409b10
mov ecx, dword [edi + 8]
mov ebp, eax
mov eax, edx
push ecx
mov dword [esp + 0x34], eax
call ebx
xor edx, edx
add ebp, eax
mov eax, dword [esp + 0x30]
adc eax, edx
push eax
push ebp
mov ecx, esi
call fcn.00402470
mov eax, dword [0x41af50]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 4]
push edi
push ecx
push str.__3d__WARNING:_did_not_receive_ack_of_last_datagram_after__d_tries._n
call fcn.004090a5
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret