Function at 0x52de30
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
sub esp, 0x28
push esi
mov esi, dword [0x5f659c]
test esi, esi
je 0x52e104
cmp dword [esi + 0x200], ecx
je 0x52de59
mov esi, dword [esi + 0x208]
test esi, esi
jne 0x52de42
pop esi
add esp, 0x28
ret
push ebx
mov eax, edx
shr eax, 0x10
test ax, ax
push ebp
push edi
je 0x52deb1
mov edi, dword [esi + 0x1ac]
movzx eax, ax
mov dword [esi + 0x1e8], eax
mov eax, dword [0x5f35d0]
test eax, eax
je 0x52de8e
push 1
push 0x3c
mov edx, esi
mov ecx, str.SOCKLISTEN
call fcn.0052cef0
mov edx, edi
mov ecx, esi
call fcn.0052cdb0
test eax, eax
je 0x52e101
pop edi
pop ebp
pop ebx
mov dword [esi + 0x1e8], 0
pop esi
add esp, 0x28
ret
push 0
call fcn.00591e16
add esp, 4
mov dword [esi + 0x1e4], eax
call fcn.0052cb80
mov edi, eax
test edi, edi
jne 0x52def1
mov eax, dword [0x5f35d0]
test eax, eax
je 0x52e101
push 4
push 0x3c
mov edx, esi
mov ecx, str.SOCKLISTEN
call fcn.0052cef0
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x28
ret
push 0
mov dword [edi + 0x1b0], 2
call fcn.00591e16
mov dword [edi + 0x1e0], eax
mov dword [edi + 0x1e4], eax
mov ecx, dword [esi + 0x204]
add esp, 4
lea edx, [esp + 0x10]
mov dword [edi + 0x204], ecx
push edx
mov ebp, 0x10
lea eax, [esp + 0x2c]
mov dword [esp + 0x14], ebp
mov ecx, dword [esi + 0x200]
push eax
push ecx
call dword [sym.imp.WSOCK32.dll_accept]
cmp eax, 0xffffffff
mov dword [edi + 0x200], eax
jne 0x52dfb0
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
mov ebx, dword [esi + 0x1ac]
mov dword [esi + 0x1e8], eax
mov eax, dword [0x5f35d0]
test eax, eax
mov ebp, dword [edi + 0x1ac]
je 0x52df79
push 2
push 0x3c
mov edx, esi
mov ecx, str.SOCKLISTEN
call fcn.0052cef0
mov edx, ebx
mov ecx, esi
call fcn.0052cdb0
test eax, eax
je 0x52df90
mov dword [esi + 0x1e8], 0
mov edx, ebp
mov ecx, edi
call fcn.0052cdb0
test eax, eax
je 0x52e101
mov ecx, edi
call fcn.0052ccd0
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x28
ret
mov eax, dword [esi + 0x200]
cmp eax, 0xffffffff
mov ebx, dword [sym.imp.WSOCK32.dll_ntohs]
je 0x52e004
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x1c]
push ecx
push eax
mov dword [esp + 0x20], ebp
call dword [sym.imp.WSOCK32.dll_getsockname]
test eax, eax
jne 0x52e004
mov edx, dword [esp + 0x1c]
push edx
call dword [sym.imp.WSOCK32.dll_inet_ntoa]
push eax
lea ecx, [esi + 0x12e]
mov edx, 0x64
call fcn.00420d70
mov eax, dword [esp + 0x1a]
push eax
call ebx
mov word [esi + 0x192], ax
mov ecx, dword [esp + 0x2c]
push ecx
call dword [sym.imp.WSOCK32.dll_htonl]
mov ecx, eax
movzx eax, ax
movzx edx, al
push edx
shr eax, 8
shr ecx, 0x10
movzx eax, al
push eax
movzx edx, cl
shr ecx, 8
movzx eax, cl
push edx
push eax
lea ecx, [edi + 0xc8]
push 0x5a5754
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
mov edx, dword [esp + 0x42]
add esp, 0x18
push edx
call ebx
mov word [edi + 0x12c], ax
mov eax, dword [0x5f35d0]
test eax, eax
je 0x52e085
mov ebp, dword [edi + 0x1ac]
push 0
push 0x3c
mov edx, esi
mov ecx, str.SOCKLISTEN
call fcn.0052cef0
mov edx, ebp
mov ecx, edi
call fcn.0052cdb0
test eax, eax
je 0x52e101
mov ebp, 0x10
cmp byte [edi], 0
je 0x52dfa1
mov ecx, dword [edi + 0x200]
call fcn.00569850
mov eax, dword [0x5f92ec]
mov ecx, dword [edi + 0x200]
push 0x23
push 0x8038
push eax
push ecx
call dword [sym.imp.WSOCK32.dll_WSAAsyncSelect]
mov eax, dword [edi + 0x200]
cmp eax, 0xffffffff
je 0x52e101
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x1c]
push ecx
push eax
mov dword [esp + 0x20], ebp
call dword [sym.imp.WSOCK32.dll_getsockname]
test eax, eax
jne 0x52e101
mov edx, dword [esp + 0x1c]
push edx
call dword [sym.imp.WSOCK32.dll_inet_ntoa]
push eax
lea ecx, [edi + 0x12e]
mov edx, 0x64
call fcn.00420d70
mov eax, dword [esp + 0x1a]
push eax
call ebx
mov word [edi + 0x192], ax
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x28
ret