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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2e0
mov eax, dword [0x45a0b0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push 0x5cf4
xor ebx, ebx
push ebx
push 0x45b5a8
call fcn.00439fd0
add esp, 0xc
cmp dword [esi], ebx
jne 0x424348
mov dword [esi], 0x45b5a8
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
push ebx
push 0x1f03ff
call dword [sym.imp.KERNEL32.dll_OpenThread]
mov ecx, dword [esi]
mov dword [ecx], eax
mov edx, dword [esi]
cmp dword [edx], ebx
jne 0x42436f
mov edi, 0xfffeffff
jmp 0x4246be
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateWaitableTimerW]
mov ecx, dword [esi]
mov dword [ecx + 4], eax
mov eax, dword [esi]
cmp dword [eax + 4], ebx
je 0x424365
lea edx, [ebp - 0x144]
mov dword [eax + 8], 0xa
push edx
mov dword [0x46129c], 0x3e8
mov dword [ebp - 0x144], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
jne 0x4243c8
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
test eax, eax
je 0x42442c
call edi
mov edi, eax
cmp edi, ebx
jne 0x4246be
mov eax, dword [esi]
mov ecx, dword [ebp - 0x140]
mov dword [eax + 0x5cec], ecx
mov edx, dword [esi]
mov eax, dword [ebp - 0x13c]
mov dword [edx + 0x5cf0], eax
mov ecx, dword [esi]
cmp dword [ecx + 0x5cec], 6
jae 0x4243f5
mov dword [0x45a054], ebx
lea edx, [ebp - 0x2d4]
push edx
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
mov edi, eax
cmp edi, ebx
jne 0x4246be
mov eax, dword [ebp - 0x2d4]
cmp al, 2
jne 0x424422
shr eax, 8
cmp al, 2
je 0x424436
mov edi, 0xfffefff8
jmp 0x4246be
mov edi, 0xffffe5d4
jmp 0x4246be
call fcn.004216d0
push str.Windows
lea edi, [esi + 0x1a55]
push 0xfe
push edi
mov dword [esi + 8], eax
call fcn.0043b84f
mov eax, edi
add esp, 0xc
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x424460
sub eax, edx
mov byte [esi + 0x1a54], al
mov eax, dword [esi]
mov dword [eax + 0x16bc], 0xffffffff
mov ecx, dword [esi]
mov dword [ecx + 0x16c0], ebx
mov edx, dword [esi]
mov dword [edx + 0x39bc], ebx
mov eax, dword [esi]
mov dword [eax + 0x39c0], ebx
mov ecx, dword [esi]
mov dword [ecx + 0x39c4], esi
mov eax, dword [esi]
movzx ecx, word [0x4463d4]
add eax, 0x16bc
push eax
mov edx, 2
push ecx
lea ecx, [ebp - 0x30]
mov word [ebp - 0x30], dx
mov dword [ebp - 0x2c], ebx
call fcn.00420e30
mov ecx, dword [esi]
lea edx, [ebp - 0x2dc]
push edx
lea eax, [ebp - 0x30]
mov dword [ebp - 0x2dc], 0x10
mov edx, dword [ecx + 0x16bc]
push eax
push edx
call dword [sym.imp.WS2_32.dll_getsockname]
mov edi, eax
cmp edi, ebx
jne 0x4246be
mov eax, dword [esi]
mov cx, word [ebp - 0x2e]
push ebx
mov word [eax + 0x16a4], cx
mov eax, dword [esi]
mov dx, word [eax + 0x16a4]
push ebx
lea ecx, [ebp - 0x2e0]
push ecx
push 4
mov word [esi + 0x18], dx
lea edx, [eax + 0x16c0]
mov eax, dword [eax + 0x16bc]
push edx
push 0x10
push 0x45a044
push 0xc8000006
push eax
call dword [sym.imp.WS2_32.dll_WSAIoctl]
test eax, eax
je 0x42453e
mov ecx, dword [esi]
mov dword [ecx + 0x16c0], ebx
mov eax, dword [esi]
lea edx, [eax + 0x16a4]
mov eax, dword [eax + 0x16bc]
push edx
push 0x421180
push 1
push eax
call fcn.00425500
mov edi, eax
cmp edi, ebx
jne 0x4246be
mov ecx, dword [esi]
mov dword [ecx + 0x39e0], 0xffffffff
mov edx, dword [esi]
mov dword [edx + 0x39e4], ebx
mov eax, dword [esi]
mov dword [eax + 0x5ce0], ebx
mov ecx, dword [esi]
mov dword [ecx + 0x5ce4], ebx
mov edx, dword [esi]
mov dword [edx + 0x5ce8], esi
cmp dword [0x45a054], ebx
je 0x4246ac
mov edx, dword [0x45743c]
mov ecx, dword [0x457438]
mov eax, 0x17
mov word [ebp - 0x20], ax
mov eax, dword [0x457440]
mov dword [ebp - 0x14], edx
mov edx, dword [esi]
mov dword [ebp - 0x18], ecx
mov ecx, dword [0x457444]
mov dword [ebp - 0x10], eax
movzx eax, word [0x4463d4]
add edx, 0x39e0
push edx
mov dword [ebp - 0xc], ecx
push eax
lea ecx, [ebp - 0x20]
mov dword [ebp - 8], ebx
call fcn.00420e30
cmp eax, ebx
je 0x4245fc
cmp eax, 0x273f
je 0x4245fc
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
jmp 0x4246ba
mov eax, dword [esi]
xor edi, edi
cmp dword [eax + 0x39e0], 0xffffffff
je 0x4246ac
lea ecx, [ebp - 0x2d8]
push ecx
lea edx, [ebp - 0x20]
mov dword [ebp - 0x2d8], 0x1c
mov eax, dword [eax + 0x39e0]
push edx
push eax
call dword [sym.imp.WS2_32.dll_getsockname]
mov edi, eax
cmp edi, ebx
jne 0x4246be
mov ecx, dword [esi]
mov dx, word [ebp - 0x1e]
push ebx
mov word [ecx + 0x39c8], dx
mov eax, dword [esi]
mov cx, word [eax + 0x39c8]
push ebx
lea edx, [ebp - 0x2e0]
push edx
push 4
mov word [esi + 0x1a], cx
mov edx, dword [eax + 0x39e0]
lea ecx, [eax + 0x39e4]
push ecx
push 0x10
push 0x45a044
push 0xc8000006
push edx
call dword [sym.imp.WS2_32.dll_WSAIoctl]
test eax, eax
je 0x42468a
mov eax, dword [esi]
mov dword [eax + 0x39e4], ebx
mov eax, dword [esi]
mov edx, dword [eax + 0x39e0]
lea ecx, [eax + 0x39c8]
push ecx
push 0x421180
push 1
push edx
call fcn.00425500
mov edi, eax
cmp edi, ebx
jne 0x4246be
mov ecx, esi
call fcn.00422950
push edi
push esi
call fcn.00411a60
cmp edi, ebx
je 0x4246c4
push esi
call fcn.00424100
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00439f90
mov esp, ebp
pop ebp
ret 4