Function at 0x10046230
Capabilities:
Create tcp socket
Create udp socket
Set socket configuration

Disassembly:
sub esp, 0x2c
mov eax, dword [0x100af208]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
push ebx
push ebp
push esi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x3c]
push edi
xor edi, edi
xor ebp, ebp
dec eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x10], 0x40000
mov dword [esp + 0x18], 1
je 0x1004634e
dec eax
je 0x10046342
call dword [sym.imp.tier0_s.dll_IsInAssert]
test al, al
jne 0x10046358
mov ebx, dword [sym.imp.tier0_s.dll_SetInAssert]
push 1
call ebx
push 0x336
push str.._net.cpp
push 2
call dword [sym.imp.tier0_s.dll__SpewInfo]
push str.Assertion_Failed:_false
push 0x1008d3bc
call dword [sym.imp.tier0_s.dll__SpewMessage]
add esp, 0x18
mov esi, eax
call dword [sym.imp.tier0_s.dll_CallFlushLogFunc]
call dword [sym.imp.tier0_s.dll_CallAssertFailedNotifyFunc]
test esi, esi
jne 0x10046307
call dword [sym.imp.tier0_s.dll_ShouldUseNewAssertDialog]
test al, al
je 0x100462f4
push str.Assertion_Failed:_false
push 0x336
push str.._net.cpp
call dword [sym.imp.tier0_s.dll_DoNewAssertDialog]
add esp, 0xc
test al, al
je 0x100462f4
int3
push 0x336
push str.._net.cpp
call dword [sym.imp.tier0_s.dll__ExitOnFatalAssert]
add esp, 8
mov al, byte [0x100b1980]
test al, al
jne 0x10046339
call dword [sym.imp.tier0_s.dll_Plat_IsInDebugSession]
test al, al
jne 0x10046339
push 0x336
push str.._net.cpp
push str.Assertion_Failed:_false
call dword [sym.imp.tier0_s.dll_WriteMiniDump]
add esp, 0xc
mov byte [0x100b1980], 1
push 0
call ebx
add esp, 4
jmp 0x10046358
mov edi, 2
mov ebp, 0x11
jmp 0x10046358
mov edi, 1
mov ebp, 6
push 1
push 0
push 0
push ebp
push edi
push 2
call dword [sym.imp.WS2_32.dll_WSASocketA]
lea ecx, [esp + 0x1c]
mov ebx, eax
mov byte [esp + 0x44], 0
mov byte [esp + 0x17], 0
call fcn.10049d80
mov ecx, dword [esp + 0x48]
and cl, 2
neg cl
mov esi, eax
sbb ecx, ecx
and ecx, 0x63
inc ecx
add ecx, esi
cmp ebx, 0xffffffff
mov edi, ecx
jne 0x100463c7
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.CreateBoundSocket:_failed_to_create_socket__Win32_error__d_n
push 0xb
push 2
push 0x10092ab8
call fcn.1005a4a0
add esp, 0x14
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
mov ecx, dword [esp + 0x28]
call fcn.10076182
add esp, 0x2c
ret
lea ecx, [esp + 0x1c]
call fcn.10049d90
cmp eax, 0x7f000001
jne 0x100463e7
push 0
lea ecx, [esp + 0x20]
call fcn.10049d60
mov byte [esp + 0x17], 1
cmp si, di
jae 0x10046433
mov ebp, dword [sym.imp.WS2_32.dll_bind]
push esi
lea ecx, [esp + 0x20]
call fcn.10049da0
lea edx, [esp + 0x28]
push edx
lea ecx, [esp + 0x20]
call fcn.10049fb0
push 0x10
lea eax, [esp + 0x2c]
push eax
push ebx
call ebp
test eax, eax
je 0x10046530
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2740
jne 0x1004653a
inc esi
cmp si, di
jb 0x100463f2
test si, si
je 0x10046444
mov al, byte [esp + 0x44]
test al, al
je 0x10046557
lea ecx, [esp + 0x18]
push ecx
push 0x8004667e
push ebx
call dword [sym.imp.WS2_32.dll_ioctlsocket]
test eax, eax
jne 0x10046557
mov ebp, dword [sym.imp.WS2_32.dll_setsockopt]
push 4
lea edx, [esp + 0x14]
push edx
push 0x1001
push 0xffff
push ebx
call ebp
test eax, eax
je 0x10046572
call dword [sym.imp.tier0_s.dll_IsInAssert]
test al, al
mov edi, dword [sym.imp.tier0_s.dll_SetInAssert]
jne 0x10046578
push 1
call edi
push 0x380
push str.._net.cpp
push 2
call dword [sym.imp.tier0_s.dll__SpewInfo]
push str.Assertion_Failed:_0__iRet
push 0x1008d3bc
call dword [sym.imp.tier0_s.dll__SpewMessage]
add esp, 0x18
mov esi, eax
call dword [sym.imp.tier0_s.dll_CallFlushLogFunc]
call dword [sym.imp.tier0_s.dll_CallAssertFailedNotifyFunc]
test esi, esi
jne 0x100464f5
call dword [sym.imp.tier0_s.dll_ShouldUseNewAssertDialog]
test al, al
je 0x100464f5
push str.Assertion_Failed:_0__iRet
push 0x380
push str.._net.cpp
call dword [sym.imp.tier0_s.dll_DoNewAssertDialog]
add esp, 0xc
test al, al
je 0x100464f5
int3
mov al, byte [0x100b197f]
test al, al
jne 0x10046527
call dword [sym.imp.tier0_s.dll_Plat_IsInDebugSession]
test al, al
jne 0x10046527
push 0x380
push str.._net.cpp
push str.Assertion_Failed:_0__iRet
call dword [sym.imp.tier0_s.dll_WriteMiniDump]
add esp, 0xc
mov byte [0x100b197f], 1
push 0
call edi
add esp, 4
jmp 0x10046578
mov byte [esp + 0x44], 1
jmp 0x10046433
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.CreateBoundSocket:_::bind_returned_Win32_error__d_n
push 0xb
push 2
push 0x10092ab8
call fcn.1005a4a0
add esp, 0x14
push ebx
call dword [sym.imp.WS2_32.dll_closesocket]
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
mov ecx, dword [esp + 0x28]
call fcn.10076182
add esp, 0x2c
ret
mov edi, dword [sym.imp.tier0_s.dll_SetInAssert]
push 4
lea eax, [esp + 0x14]
push eax
push 0x1002
push 0xffff
push ebx
mov dword [esp + 0x24], 0x40000
call ebp
test eax, eax
je 0x10046645
call dword [sym.imp.tier0_s.dll_IsInAssert]
test al, al
jne 0x10046645
push 1
call edi
push 0x383
push str.._net.cpp
push 2
call dword [sym.imp.tier0_s.dll__SpewInfo]
push str.Assertion_Failed:_0__iRet
push 0x1008d3bc
call dword [sym.imp.tier0_s.dll__SpewMessage]
add esp, 0x18
mov esi, eax
call dword [sym.imp.tier0_s.dll_CallFlushLogFunc]
call dword [sym.imp.tier0_s.dll_CallAssertFailedNotifyFunc]
test esi, esi
jne 0x1004660c
call dword [sym.imp.tier0_s.dll_ShouldUseNewAssertDialog]
test al, al
je 0x1004660c
push str.Assertion_Failed:_0__iRet
push 0x383
push str.._net.cpp
call dword [sym.imp.tier0_s.dll_DoNewAssertDialog]
add esp, 0xc
test al, al
je 0x1004660c
int3
mov al, byte [0x100b197e]
test al, al
jne 0x1004663e
call dword [sym.imp.tier0_s.dll_Plat_IsInDebugSession]
test al, al
jne 0x1004663e
push 0x383
push str.._net.cpp
push str.Assertion_Failed:_0__iRet
call dword [sym.imp.tier0_s.dll_WriteMiniDump]
add esp, 0xc
mov byte [0x100b197e], 1
push 0
call edi
add esp, 4
mov eax, dword [esp + 0x40]
mov esi, 1
cmp eax, esi
mov dword [esp + 0x10], esi
jne 0x1004671b
push 4
lea ecx, [esp + 0x14]
push ecx
push 8
push 0xffff
push ebx
call ebp
test eax, eax
je 0x1004671b
call dword [sym.imp.tier0_s.dll_IsInAssert]
test al, al
jne 0x1004671b
push esi
call edi
push 0x38a
push str.._net.cpp
push 2
call dword [sym.imp.tier0_s.dll__SpewInfo]
push str.Assertion_Failed:_0__iRet
push 0x1008d3bc
call dword [sym.imp.tier0_s.dll__SpewMessage]
add esp, 0x18
mov esi, eax
call dword [sym.imp.tier0_s.dll_CallFlushLogFunc]
call dword [sym.imp.tier0_s.dll_CallAssertFailedNotifyFunc]
test esi, esi
jne 0x100466e2
call dword [sym.imp.tier0_s.dll_ShouldUseNewAssertDialog]
test al, al
je 0x100466e2
push str.Assertion_Failed:_0__iRet
push 0x38a
push str.._net.cpp
call dword [sym.imp.tier0_s.dll_DoNewAssertDialog]
add esp, 0xc
test al, al
je 0x100466e2
int3
mov al, byte [0x100b197d]
test al, al
jne 0x10046714
call dword [sym.imp.tier0_s.dll_Plat_IsInDebugSession]
test al, al
jne 0x10046714
push 0x38a
push str.._net.cpp
push str.Assertion_Failed:_0__iRet
call dword [sym.imp.tier0_s.dll_WriteMiniDump]
add esp, 0xc
mov byte [0x100b197d], 1
push 0
call edi
add esp, 4
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x100463b4
push esi
push ebx
call fcn.10046090
mov al, byte [esp + 0x1f]
add esp, 8
test al, al
je 0x100463b4
push 0x7f000001
mov ecx, esi
call fcn.10049d60
mov ecx, dword [esp + 0x38]
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
call fcn.10076182
add esp, 0x2c
ret