Function at 0x409ed0
Capabilities:
Get local ipv4 addresses
Get socket information
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
sub esp, 0x6e4
xor eax, eax
push ebx
mov dword [esp + 0x11], eax
push ebp
mov dword [esp + 0x19], eax
push edi
mov dword [esp + 0x21], eax
xor ebx, ebx
mov dword [esp + 0x25], eax
mov ecx, 0x40
mov word [esp + 0x29], ax
lea edi, [esp + 0x65]
mov byte [esp + 0x2b], al
mov byte [esp + 0x64], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 9
xor eax, eax
lea edi, [esp + 0x40]
mov dword [esp + 0x3c], ebx
rep stosd dword es:[edi], eax
mov byte [esp + 0x18], bl
mov dword [esp + 0xc], ebx
call fcn.0040d640
test eax, eax
je 0x40a134
mov edi, 0x422c34
or ecx, 0xffffffff
xor eax, eax
push esi
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x68]
mov eax, ecx
mov esi, edi
mov edi, edx
mov ebp, dword [esp + 0x6f8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea edx, [esp + 0x18]
and ecx, 3
lea eax, [esp + 0x30]
rep movsb byte es:[edi], byte [esi]
xor ecx, ecx
push edx
mov dword [esp + 0x34], ecx
push eax
mov dword [esp + 0x3c], ecx
push ebp
mov dword [esp + 0x44], ecx
mov dword [esp + 0x24], 0x10
mov dword [esp + 0x48], ecx
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jge 0x409f98
push str.ERROR::_getsockname_error
call fcn.0040b9a0
add esp, 4
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x1c]
push ecx
mov esi, eax
push eax
lea edx, [esp + 0x48]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.0040b5a0
add esp, 0x10
push esi
call dword [sym.imp.WS2_32.dll_ntohl]
mov edx, eax
mov ecx, 0x162
xor eax, eax
lea edi, [esp + 0x16c]
rep stosd dword es:[edi], eax
mov edi, 0x41e0e4
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
lea esi, [esp + 0x16c]
sub edi, ecx
mov eax, ecx
mov dword [esp + 0x14], esi
mov esi, edi
mov edi, dword [esp + 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x68]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x170], 0x16
push ecx
push eax
push edx
lea ecx, [esp + 0x188]
push str._10u__s_pro_authenticate__s
push ecx
mov dword [esp + 0x188], 1
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x14
lea edx, [esp + 0x16c]
push ebx
push 0x588
push edx
push ebp
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
pop esi
jne 0x40a06a
push str.ERROR::_Send_local_auth_info_failed_
call fcn.0040b9a0
add esp, 4
mov eax, 0xfffffff8
pop edi
pop ebp
pop ebx
add esp, 0x6e4
ret
mov ecx, 0x162
xor eax, eax
lea edi, [esp + 0x168]
push ebx
rep stosd dword es:[edi], eax
lea eax, [esp + 0x16c]
push 0x588
push eax
push ebp
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jg 0x40a0af
push str.ERROR::_Recv_local_auth_result_failed_
call fcn.0040b9a0
add esp, 4
mov eax, 0xfffffff8
pop edi
pop ebp
pop ebx
add esp, 0x6e4
ret
push 3
lea ecx, [esp + 0x16c]
push 0x41e0e4
push ecx
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x40a125
cmp dword [esp + 0x16c], 0x26
jne 0x40a125
lea edx, [esp + 0x178]
push edx
call fcn.004092f0
add esp, 4
cmp eax, ebx
jne 0x40a0f8
pop edi
pop ebp
mov eax, 1
pop ebx
add esp, 0x6e4
ret
cmp dword [0x4225c4], ebx
je 0x40a109
push eax
call fcn.0040bd20
add esp, 4
push str.ERROR::_Local_auth_info_error
call fcn.0040b9a0
add esp, 4
mov eax, 0xfffffff5
pop edi
pop ebp
pop ebx
add esp, 0x6e4
ret
pop edi
pop ebp
mov eax, 0xfffffff4
pop ebx
add esp, 0x6e4
ret
pop edi
pop ebp
mov eax, 0xfffffff7
pop ebx
add esp, 0x6e4
ret