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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
lea rbp, [rsp - 0x260]
sub rsp, 0x360
mov rax, qword [0x14006a110]
xor rax, rsp
mov qword [rbp + 0x250], rax
mov rbx, rcx
lea rdi, [0x14006baf0]
xor edx, edx
mov rcx, rdi
mov r8d, 0x61a0
call fcn.140043870
cmp qword [rbx], 0
cmovne rdi, qword [rbx]
mov qword [rbx], rdi
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
xor edx, edx
mov r8d, eax
mov ecx, 0x1f03ff
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rcx, qword [rbx]
mov qword [rcx], rax
mov rax, qword [rbx]
cmp qword [rax], 0
jne 0x14002a1c4
mov edi, 0xfffeffff
jmp 0x14002a582
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateWaitableTimerW]
mov rcx, qword [rbx]
mov qword [rcx + 8], rax
mov rax, qword [rbx]
cmp qword [rax + 8], 0
je 0x14002a1ba
mov dword [rax + 0x10], 0xa
lea rcx, [rbp - 0x70]
mov dword [0x140071c90], 0x3e8
mov dword [rbp - 0x70], 0x114
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
jne 0x14002a226
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x14002a487
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test eax, eax
jne 0x14002a582
mov eax, dword [rbp - 0x6c]
mov rcx, qword [rbx]
xor esi, esi
mov dword [rcx + 0x6198], eax
mov rcx, qword [rbx]
mov eax, dword [rbp - 0x68]
mov dword [rcx + 0x619c], eax
mov ecx, dword [reloc.WS2_32.dll_accept]
mov rax, qword [rbx]
cmp dword [rax + 0x6198], 6
lea rdx, [rbp + 0xb0]
cmovb ecx, esi
mov dword [reloc.WS2_32.dll_accept], ecx
mov ecx, 0x202
call qword [sym.imp.WS2_32.dll_WSAStartup]
mov edi, eax
test eax, eax
jne 0x14002a582
movzx eax, word [rbp + 0xb0]
cmp al, 2
jne 0x14002a57d
shr ax, 8
cmp al, 2
jne 0x14002a57d
call fcn.140026d40
lea rdi, [rbx + 0x2a21]
lea r8, str.Windows
mov rcx, rdi
mov edx, 0xfe
mov dword [rbx + 0xc], eax
call fcn.14004558c
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
mov rax, qword [rbx]
not rcx
dec rcx
mov byte [rbx + 0x2a20], cl
mov qword [rax + 0x1b40], 0xffffffffffffffff
mov rax, qword [rbx]
mov qword [rax + 0x1b48], rsi
mov rax, qword [rbx]
lea rcx, [rsp + 0x60]
mov qword [rax + 0x3e48], rsi
mov rax, qword [rbx]
mov qword [rax + 0x3e50], rsi
mov rax, qword [rbx]
mov qword [rax + 0x3e58], rbx
mov r8, qword [rbx]
movzx edx, word [0x1400506ec]
mov eax, 2
add r8, 0x1b40
mov dword [rsp + 0x64], esi
mov word [rsp + 0x60], ax
call fcn.140026480
mov rcx, qword [rbx]
mov dword [rsp + 0x54], reloc.WS2_32.dll_recv
mov rcx, qword [rcx + 0x1b40]
lea r8, [rsp + 0x54]
lea rdx, [rsp + 0x60]
call qword [sym.imp.WS2_32.dll_getsockname]
mov edi, eax
test eax, eax
jne 0x14002a582
movzx eax, word [rsp + 0x62]
mov rcx, qword [rbx]
mov qword [rsp + 0x40], rsi
mov word [rcx + 0x1b28], ax
mov rcx, qword [rbx]
lea rdx, [rsp + 0x58]
movzx eax, word [rcx + 0x1b28]
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rdx
mov word [rbx + 0x1c], ax
lea rax, [rcx + 0x1b48]
mov rcx, qword [rcx + 0x1b40]
lea r9d, [rsi + 0x10]
lea r8, [0x14006a068]
mov edx, 0xc8000006
mov dword [rsp + 0x28], 8
mov qword [rsp + 0x20], rax
call qword [sym.imp.WS2_32.dll_WSAIoctl]
test eax, eax
je 0x14002a3c2
mov rax, qword [rbx]
mov qword [rax + 0x1b48], rsi
mov rcx, qword [rbx]
lea r8, [0x140026820]
mov edx, 1
lea r9, [rcx + 0x1b28]
mov rcx, qword [rcx + 0x1b40]
call fcn.14002b830
mov edi, eax
test eax, eax
jne 0x14002a582
cmp dword [reloc.WS2_32.dll_accept], esi
mov rax, qword [rbx]
mov qword [rax + 0x3e78], 0xffffffffffffffff
mov rax, qword [rbx]
mov qword [rax + 0x3e80], rsi
mov rax, qword [rbx]
mov qword [rax + 0x6180], rsi
mov rax, qword [rbx]
mov qword [rax + 0x6188], rsi
mov rax, qword [rbx]
mov qword [rax + 0x6190], rbx
je 0x14002a565
mov r8, qword [rbx]
movzx edx, word [0x1400506ec]
mov eax, reloc.WS2_32.dll_socket
mov word [rsp + 0x70], ax
mov rax, qword [0x1400623e8]
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x78], rax
mov rax, qword [0x1400623f0]
add r8, 0x3e78
mov qword [rbp - 0x80], rax
mov dword [rbp - 0x78], esi
call fcn.140026480
test eax, eax
je 0x14002a491
cmp eax, 0x273f
je 0x14002a491
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
jmp 0x14002a577
mov edi, 0xffffe5d4
jmp 0x14002a582
mov rcx, qword [rbx]
mov edi, esi
cmp qword [rcx + 0x3e78], 0xffffffffffffffff
je 0x14002a565
mov dword [rsp + 0x50], 0x1c
mov rcx, qword [rcx + 0x3e78]
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x70]
call qword [sym.imp.WS2_32.dll_getsockname]
mov edi, eax
test eax, eax
jne 0x14002a582
movzx eax, word [rsp + 0x72]
mov rcx, qword [rbx]
mov qword [rsp + 0x40], rsi
mov word [rcx + 0x3e60], ax
mov rcx, qword [rbx]
lea rdx, [rsp + 0x58]
movzx eax, word [rcx + 0x3e60]
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rdx
mov word [rbx + 0x1e], ax
lea rax, [rcx + 0x3e80]
mov rcx, qword [rcx + 0x3e78]
lea r9d, [rdi + 0x10]
lea r8, [0x14006a068]
mov edx, 0xc8000006
mov dword [rsp + 0x28], 8
mov qword [rsp + 0x20], rax
call qword [sym.imp.WS2_32.dll_WSAIoctl]
test eax, eax
je 0x14002a53d
mov rax, qword [rbx]
mov qword [rax + 0x3e80], rsi
mov rcx, qword [rbx]
lea r8, [0x140026820]
mov edx, 1
lea r9, [rcx + 0x3e60]
mov rcx, qword [rcx + 0x3e78]
call fcn.14002b830
mov edi, eax
test eax, eax
jne 0x14002a582
mov rcx, rbx
call fcn.140028180
mov edx, edi
mov rcx, rbx
call fcn.140014d70
test edi, edi
jne 0x14002a582
jmp 0x14002a58a
mov edi, 0xfffefff8
mov rcx, rbx
call fcn.140029e90
mov eax, edi
mov rcx, qword [rbp + 0x250]
xor rcx, rsp
call fcn.1400437e0
lea r11, [rsp + 0x360]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret