Function at 0x14002a2d0
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.140043a10
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 0x14002a354
mov edi, 0xfffeffff
jmp 0x14002a712
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 0x14002a34a
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 0x14002a3b6
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x14002a617
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test eax, eax
jne 0x14002a712
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 0x14002a712
movzx eax, word [rbp + 0xb0]
cmp al, 2
jne 0x14002a70d
shr ax, 8
cmp al, 2
jne 0x14002a70d
call fcn.140026d30
lea rdi, [rbx + 0x2a21]
lea r8, str.Windows
mov rcx, rdi
mov edx, 0xfe
mov dword [rbx + 0xc], eax
call fcn.14004572c
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.140026470
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 0x14002a712
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 0x14002a552
mov rax, qword [rbx]
mov qword [rax + 0x1b48], rsi
mov rcx, qword [rbx]
lea r8, [0x140026810]
mov edx, 1
lea r9, [rcx + 0x1b28]
mov rcx, qword [rcx + 0x1b40]
call fcn.14002b9c0
mov edi, eax
test eax, eax
jne 0x14002a712
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 0x14002a6f5
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.140026470
test eax, eax
je 0x14002a621
cmp eax, 0x273f
je 0x14002a621
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
jmp 0x14002a707
mov edi, 0xffffe5d4
jmp 0x14002a712
mov rcx, qword [rbx]
mov edi, esi
cmp qword [rcx + 0x3e78], 0xffffffffffffffff
je 0x14002a6f5
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 0x14002a712
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 0x14002a6cd
mov rax, qword [rbx]
mov qword [rax + 0x3e80], rsi
mov rcx, qword [rbx]
lea r8, [0x140026810]
mov edx, 1
lea r9, [rcx + 0x3e60]
mov rcx, qword [rcx + 0x3e78]
call fcn.14002b9c0
mov edi, eax
test eax, eax
jne 0x14002a712
mov rcx, rbx
call fcn.140028320
mov edx, edi
mov rcx, rbx
call fcn.140014d60
test edi, edi
jne 0x14002a712
jmp 0x14002a71a
mov edi, 0xfffefff8
mov rcx, rbx
call fcn.14002a020
mov eax, edi
mov rcx, qword [rbp + 0x250]
xor rcx, rsp
call fcn.140043980
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