Function at 0x459624
Capabilities:
Create tcp socket
Create udp socket

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
push esi
push edi
mov word [ebp - 6], cx
mov dword [ebp - 4], edx
mov esi, eax
mov eax, dword [ebp - 4]
call fcn.00404d58
xor eax, eax
push ebp
push 0x459834
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
cmp byte [esi + 4], 0
jne 0x45981e
push 0
push 0
push 0
push 0xffffffffffffffff
call sub.kernel32.dll_CreateIoCompletionPort
mov dword [esi + 0x24], eax
push 1
push 0
push 0
push 0
push 1
push 2
call sub.ws2_32.dll_WSASocketA
mov edi, eax
mov dword [esi + 0x20], edi
inc edi
jne 0x45968f
mov eax, dword [esi + 0x24]
push eax
call sub.kernel32.dll_CloseHandle
jmp 0x45981e
movzx eax, word [ebp - 6]
push eax
call sub.ws2_32.dll_htons
mov word [ebp - 0x14], ax
mov word [ebp - 0x16], 2
mov eax, dword [ebp - 4]
call fcn.00404d68
push eax
call sub.ws2_32.dll_inet_addr
mov dword [ebp - 0x12], eax
push 0x10
lea eax, [ebp - 0x16]
push eax
mov eax, dword [esi + 0x20]
push eax
call sub.ws2_32.dll_bind
inc eax
jne 0x4596de
mov edx, dword [esi + 0x20]
mov eax, esi
call fcn.00459b08
mov eax, dword [esi + 0x24]
push eax
call sub.kernel32.dll_CloseHandle
jmp 0x45981e
push 0x3e8
mov eax, dword [esi + 0x20]
push eax
call sub.ws2_32.dll_listen
inc eax
jne 0x459707
mov edx, dword [esi + 0x20]
mov eax, esi
call fcn.00459b08
mov eax, dword [esi + 0x24]
push eax
call sub.kernel32.dll_CloseHandle
jmp 0x45981e
push 0
push 0
mov eax, dword [esi + 0x24]
push eax
mov eax, dword [esi + 0x20]
push eax
call sub.kernel32.dll_CreateIoCompletionPort
test eax, eax
jne 0x459734
mov edx, dword [esi + 0x20]
mov eax, esi
call fcn.00459b08
mov eax, dword [esi + 0x24]
push eax
call sub.kernel32.dll_CloseHandle
jmp 0x45981e
mov edx, dword [0x45e7f8]
mov eax, dword [esi + 0x20]
call fcn.004595f8
mov dword [esi + 0xc], eax
cmp dword [esi + 0xc], 0
jne 0x459763
mov edx, dword [esi + 0x20]
mov eax, esi
call fcn.00459b08
mov eax, dword [esi + 0x24]
push eax
call sub.kernel32.dll_CloseHandle
jmp 0x45981e
mov edx, dword [0x45e808]
mov eax, dword [esi + 0x20]
call fcn.004595f8
mov dword [esi + 0x10], eax
cmp dword [esi + 0x10], 0
jne 0x459792
mov edx, dword [esi + 0x20]
mov eax, esi
call fcn.00459b08
mov eax, dword [esi + 0x24]
push eax
call sub.kernel32.dll_CloseHandle
jmp 0x45981e
call sub.ws2_32.dll_WSACreateEvent
mov edi, eax
mov dword [esi + 0x28], edi
test edi, edi
jne 0x4597b5
mov edx, dword [esi + 0x20]
mov eax, esi
call fcn.00459b08
mov eax, dword [esi + 0x24]
push eax
call sub.kernel32.dll_CloseHandle
jmp 0x45981e
push 8
mov eax, dword [esi + 0x28]
push eax
mov eax, dword [esi + 0x20]
push eax
call sub.ws2_32.dll_WSAEventSelect
inc eax
jne 0x4597e5
mov eax, dword [esi + 0x28]
push eax
call sub.ws2_32.dll_WSACloseEvent
mov edx, dword [esi + 0x20]
mov eax, esi
call fcn.00459b08
mov eax, dword [esi + 0x24]
push eax
call sub.kernel32.dll_CloseHandle
jmp 0x45981e
mov edx, dword [esi + 8]
mov eax, esi
call fcn.00459c10
mov cl, 1
mov dl, 1
mov eax, dword [0x458ec0]
call fcn.00458f24
mov ebx, eax
mov dword [esi + 0x14], ebx
mov dword [ebx + 0x44], esi
mov dword [ebx + 0x40], 0x459aa4
mov byte [esi + 4], 1
mov edx, dword [esi + 8]
mov eax, esi
call fcn.004598d8
movzx ebx, byte [esi + 4]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x45983b
lea eax, [ebp - 4]
call fcn.004048d8
ret