Function at 0x3220810
Capabilities:
Check os version

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r15
lea rbp, [rsp - 0x10]
sub rsp, 0x110
mov rax, qword [0x03260b88]
xor rax, rsp
mov qword [rbp], rax
movdqa xmm1, xmmword [str._y_J]
mov r8b, 0x4d
movdqu xmmword [rsp + 0x48], xmm1
mov rsi, rdx
mov qword [rsp + 0x38], rdx
mov rdi, rcx
mov dl, 0x5b
movd ecx, xmm1
movzx r9d, r8b
movzx r10d, dl
movzx r11d, r8b
movdqa xmm0, xmm1
xor r15d, r15d
xor byte [rsp + 0x4a], cl
xor dl, cl
xor byte [rsp + 0x4b], cl
xor r8b, cl
xor byte [rsp + 0x4c], cl
xor r9b, cl
xor byte [rsp + 0x4d], cl
xor r10b, cl
xor byte [rsp + 0x4e], cl
xor r11b, cl
xor byte [rsp + 0x4f], cl
xor byte [rsp + 0x50], cl
xor byte [rsp + 0x51], cl
xor byte [rsp + 0x52], cl
xor byte [rsp + 0x53], cl
xor byte [rsp + 0x54], cl
xor byte [rsp + 0x55], cl
xor byte [rsp + 0x56], cl
xor byte [rsp + 0x57], cl
psrldq xmm0, 1
movd eax, xmm0
mov dword [rsp + 0x30], r15d
mov byte [rsp + 0x58], dl
xor al, cl
mov byte [rsp + 0x59], r8b
lea rcx, str.iphlpapi
mov byte [rsp + 0x49], al
mov byte [rsp + 0x5a], r9b
mov byte [rsp + 0x5b], r10b
mov byte [rsp + 0x5c], r11b
mov byte [rsp + 0x5d], r15b
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, [rsp + 0x49]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
test rax, rax
jne 0x3220910
mov rdx, rsi
mov rcx, rdi
call fcn.03220ba0
jmp 0x3220b81
xor r9d, r9d
mov qword [rsp + 0x140], r12
lea rax, [rsp + 0x30]
xor r8d, r8d
xor ecx, ecx
mov qword [rsp + 0x20], rax
lea edx, [r9 + 0x1e]
call rbx
mov ecx, dword [rsp + 0x30]
call fcn.0322fc58
mov qword [rsp + 0x40], rax
mov r12, rax
test rax, rax
jne 0x3220950
lea eax, [r12 + 8]
jmp 0x3220b79
xor r8d, r8d
lea rax, [rsp + 0x30]
mov r9, r12
mov qword [rsp + 0x20], rax
xor ecx, ecx
lea edx, [r8 + 0x1e]
call rbx
test eax, eax
je 0x322097a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r15d, eax
jmp 0x3220b6e
cmp dword [r12], 0x48
ja 0x3220994
mov rdx, rsi
mov rcx, rdi
call fcn.03220ba0
mov r15d, eax
jmp 0x3220b6e
xorps xmm0, xmm0
mov qword [rsp + 0x150], r13
xor eax, eax
mov qword [rsp + 0x158], r14
lea rcx, [rsp + 0x60]
mov qword [rbp - 0xc], rax
movups xmmword [rsp + 0x64], xmm0
mov dword [rsp + 0x60], 0x9c
movups xmmword [rsp + 0x74], xmm0
movups xmmword [rbp - 0x7c], xmm0
movups xmmword [rbp - 0x6c], xmm0
movups xmmword [rbp - 0x5c], xmm0
movups xmmword [rbp - 0x4c], xmm0
movups xmmword [rbp - 0x3c], xmm0
movups xmmword [rbp - 0x2c], xmm0
movups xmmword [rbp - 0x1c], xmm0
call qword [sym.imp.KERNEL32.dll_GetVersionExA]
mov r13, r12
mov r12, rsi
nop dword [rax]
mov rax, qword [0x0325c200]
mov r14, qword [r13 + 0xb0]
call qword [rax + 0xd8]
mov r9, qword [0x0325c200]
mov edx, 0x2057c
mov r8d, dword [r13 + 4]
mov rcx, rax
mov rsi, rax
call qword [r9 + 0x58]
mov r10, qword [0x0325c200]
lea r8, [r13 + 0x50]
mov r9d, dword [r13 + 0x58]
mov edx, 0x40597
mov rcx, rsi
call qword [r10 + 0x48]
mov rax, qword [0x0325c200]
mov edx, 0x10598
mov r8, qword [r13 + 0x40]
mov rcx, rsi
call qword [rax + 0x60]
mov rax, qword [0x0325c200]
mov edx, 0x2057a
mov r8d, dword [r13 + 0x60]
mov rcx, rsi
call qword [rax + 0x58]
mov rdi, qword [r13 + 0x18]
test rdi, rdi
je 0x3220b37
mov ecx, 2
lea r12d, [rcx + 0x15]
nop dword [rax + rax]
mov rbx, qword [rdi + 0x10]
movzx eax, word [rbx]
cmp cx, ax
je 0x3220a96
cmp r12w, ax
jne 0x3220b25
cmp dword [rsp + 0x64], 6
mov dword [rsp + 0x34], r15d
jb 0x3220aa8
movzx ecx, byte [rdi + 0x38]
jmp 0x3220ab1
test r14, r14
je 0x3220adc
mov ecx, dword [r14 + 0x20]
call qword [sym.imp.WS2_32.dll_htonl]
mov dword [rsp + 0x34], eax
test eax, eax
je 0x3220adc
mov rax, qword [0x0325c200]
lea r8, [rsp + 0x34]
mov r9d, 4
mov edx, 0x20590
mov rcx, rsi
call qword [rax + 0x48]
cmp word [rbx], 2
mov edx, 0x40596
mov rax, qword [0x0325c200]
mov rcx, rsi
jne 0x3220af7
lea r8, [rbx + 4]
jmp 0x3220b17
lea r8, [rbx + 8]
mov r9d, 0x10
call qword [rax + 0x48]
mov rax, qword [0x0325c200]
lea r8, [rbx + 0x18]
mov edx, 0x4059a
mov rcx, rsi
mov r9d, 4
call qword [rax + 0x48]
mov ecx, 2
mov rdi, qword [rdi + 8]
test rdi, rdi
jne 0x3220a80
mov r12, qword [rsp + 0x38]
mov rax, qword [0x0325c200]
mov r8, rsi
mov edx, 0x40000599
mov rcx, r12
call qword [rax + 0x20]
mov r13, qword [r13 + 8]
test r13, r13
jne 0x32209f0
mov r12, qword [rsp + 0x40]
mov r14, qword [rsp + 0x158]
mov r13, qword [rsp + 0x150]
mov rcx, r12
call fcn.0322fc44
mov eax, r15d
mov r12, qword [rsp + 0x140]
mov rcx, qword [rbp]
xor rcx, rsp
call fcn.03229100
add rsp, 0x110
pop r15
pop rdi
pop rsi
pop rbx
pop rbp
ret