Function at 0x431150
Capabilities:
Check os version
Get local ipv4 addresses
Get socket information
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2e4
push esi
push 0x5b60
push 0
push 0x44fcd0
call sub.VCRUNTIME140.dll_memset
mov eax, dword [0x46dca0]
add esp, 0xc
test eax, eax
mov ecx, 0x44fcd0
cmovne ecx, eax
mov dword [0x46dca0], ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
push 0
push 0x1fffff
call dword [sym.imp.KERNEL32.dll_OpenThread]
mov ecx, dword [0x46dca0]
mov dword [ecx], eax
mov eax, dword [0x46dca0]
cmp dword [eax], 0
jne 0x4311bf
mov ecx, 0x46dca0
mov esi, 0xfffeffff
call fcn.004315a0
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateWaitableTimerW]
mov ecx, dword [0x46dca0]
mov dword [ecx + 4], eax
mov eax, dword [0x46dca0]
cmp dword [eax + 4], 0
je 0x4311a9
mov dword [eax + 8], 0xa
lea eax, [ebp - 0x150]
push eax
mov dword [0x44f49c], 0x3e8
mov dword [ebp - 0x150], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
jne 0x431227
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
je 0x431491
call esi
mov esi, eax
test esi, esi
jne 0x43158b
mov ecx, dword [0x46dca0]
xor edx, edx
mov eax, dword [ebp - 0x14c]
mov dword [ecx + 0x5b58], eax
mov ecx, dword [0x46dca0]
mov eax, dword [ebp - 0x148]
mov dword [ecx + 0x5b5c], eax
mov eax, dword [0x46dca0]
mov ecx, dword [0x44f040]
cmp dword [eax + 0x5b58], 6
lea eax, [ebp - 0x2e0]
push eax
cmovb ecx, edx
push 0x202
mov dword [0x44f040], ecx
call dword [sym.imp.WS2_32.dll_WSAStartup]
mov esi, eax
test esi, esi
jne 0x43158b
mov eax, dword [ebp - 0x2e0]
cmp al, 2
jne 0x431586
shr eax, 8
cmp al, 2
jne 0x431586
call fcn.00434700
push str.Windows
push 0xfe
push 0x46f6f5
mov dword [0x46dca8], eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
mov ecx, 0x46f6f5
add esp, 0xc
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4312c7
mov eax, dword [0x46dca0]
sub ecx, edx
mov byte [0x46f6f4], cl
lea edx, [ebp - 0x1c]
mov dword [eax + 0x1528], 0xffffffff
mov eax, dword [0x46dca0]
mov dword [eax + 0x152c], 0
mov eax, dword [0x46dca0]
mov dword [eax + 0x3828], 0
mov eax, dword [0x46dca0]
mov dword [eax + 0x382c], 0
mov eax, dword [0x46dca0]
mov dword [eax + 0x3830], 0x46dca0
mov eax, 2
mov word [ebp - 0x1c], ax
mov eax, dword [0x46dca0]
add eax, 0x1528
mov dword [ebp - 0x18], 0
push eax
movzx eax, word [0x43d970]
push eax
call fcn.00433770
lea eax, [ebp - 4]
mov dword [ebp - 4], 0x10
push eax
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [0x46dca0]
push dword [eax + 0x1528]
call dword [sym.imp.WS2_32.dll_getsockname]
mov esi, eax
test esi, esi
jne 0x43158b
mov ecx, dword [0x46dca0]
movzx eax, word [ebp - 0x1a]
push esi
push esi
mov word [ecx + 0x1510], ax
mov ecx, dword [0x46dca0]
movzx eax, word [ecx + 0x1510]
mov word [0x46dcb8], ax
lea eax, [ebp - 0xc]
push eax
push 4
lea eax, [ecx + 0x152c]
push eax
push 0x10
push 0x44f044
push 0xc8000006
push dword [ecx + 0x1528]
call dword [sym.imp.WS2_32.dll_WSAIoctl]
test eax, eax
je 0x4313d0
mov eax, dword [0x46dca0]
mov dword [eax + 0x152c], esi
mov ecx, dword [0x46dca0]
mov edx, 1
lea eax, [ecx + 0x1510]
mov ecx, dword [ecx + 0x1528]
push eax
push 0x433a40
call fcn.00438400
mov esi, eax
test esi, esi
jne 0x43158b
mov eax, dword [0x46dca0]
mov dword [eax + 0x384c], 0xffffffff
mov eax, dword [0x46dca0]
mov dword [eax + 0x3850], esi
mov eax, dword [0x46dca0]
mov dword [eax + 0x5b4c], esi
mov eax, dword [0x46dca0]
mov dword [eax + 0x5b50], esi
mov eax, dword [0x46dca0]
mov dword [eax + 0x5b54], 0x46dca0
cmp dword [0x44f040], esi
je 0x431562
movups xmm0, xmmword [0x43c4cc]
mov eax, 0x17
mov dword [ebp - 0x20], esi
mov word [ebp - 0x38], ax
lea edx, [ebp - 0x38]
mov eax, dword [0x46dca0]
add eax, 0x384c
push eax
movzx eax, word [0x43d970]
push eax
movups xmmword [ebp - 0x30], xmm0
call fcn.00433770
test eax, eax
je 0x4314a7
cmp eax, 0x273f
je 0x4314a7
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
jmp 0x43157b
mov ecx, 0x46dca0
mov esi, 0xffffe5d4
call fcn.004315a0
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x46dca0]
xor esi, esi
cmp dword [eax + 0x384c], 0xffffffff
je 0x431562
lea ecx, [ebp - 8]
mov dword [ebp - 8], 0x1c
push ecx
lea ecx, [ebp - 0x38]
push ecx
push dword [eax + 0x384c]
call dword [sym.imp.WS2_32.dll_getsockname]
mov esi, eax
test esi, esi
jne 0x43158b
mov ecx, dword [0x46dca0]
movzx eax, word [ebp - 0x36]
push esi
push esi
mov word [ecx + 0x3834], ax
mov ecx, dword [0x46dca0]
movzx eax, word [ecx + 0x3834]
mov word [0x46dcba], ax
lea eax, [ebp - 0xc]
push eax
push 4
lea eax, [ecx + 0x3850]
push eax
push 0x10
push 0x44f044
push 0xc8000006
push dword [ecx + 0x384c]
call dword [sym.imp.WS2_32.dll_WSAIoctl]
test eax, eax
je 0x43153a
mov eax, dword [0x46dca0]
mov dword [eax + 0x3850], esi
mov ecx, dword [0x46dca0]
mov edx, 1
lea eax, [ecx + 0x3834]
mov ecx, dword [ecx + 0x384c]
push eax
push 0x433a40
call fcn.00438400
mov esi, eax
test esi, esi
jne 0x43158b
call fcn.004322d0
cmp dword [0x46dcc4], 0
mov dword [0x46dcb4], esi
je 0x43157b
call fcn.0041d620
test esi, esi
jne 0x43158b
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret
mov esi, 0xfffefff8
mov ecx, 0x46dca0
call fcn.004315a0
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret