Function at 0x424200
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.00439ed0
add esp, 0xc
cmp dword [esi], ebx
jne 0x424238
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 0x42425f
mov edi, 0xfffeffff
jmp 0x4245ae
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 0x424255
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 0x4242b8
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
test eax, eax
je 0x42431c
call edi
mov edi, eax
cmp edi, ebx
jne 0x4245ae
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 0x4242e5
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 0x4245ae
mov eax, dword [ebp - 0x2d4]
cmp al, 2
jne 0x424312
shr eax, 8
cmp al, 2
je 0x424326
mov edi, 0xfffefff8
jmp 0x4245ae
mov edi, 0xffffe5d4
jmp 0x4245ae
call fcn.004216e0
push str.Windows
lea edi, [esi + 0x1a55]
push 0xfe
push edi
mov dword [esi + 8], eax
call fcn.0043b74f
mov eax, edi
add esp, 0xc
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x424350
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.00420e40
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 0x4245ae
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 0x42442e
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 0x421190
push 1
push eax
call fcn.00425400
mov edi, eax
cmp edi, ebx
jne 0x4245ae
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 0x42459c
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.00420e40
cmp eax, ebx
je 0x4244ec
cmp eax, 0x273f
je 0x4244ec
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
jmp 0x4245aa
mov eax, dword [esi]
xor edi, edi
cmp dword [eax + 0x39e0], 0xffffffff
je 0x42459c
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 0x4245ae
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 0x42457a
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 0x421190
push 1
push edx
call fcn.00425400
mov edi, eax
cmp edi, ebx
jne 0x4245ae
mov ecx, esi
call fcn.00422840
push edi
push esi
call fcn.00411a70
cmp edi, ebx
je 0x4245b4
push esi
call fcn.00423ff0
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00439e8a
mov esp, ebp
pop ebp
ret 4