Function at 0x2687d117
Capabilities:
Check os version

Disassembly:
mov eax, 0x268eecbf
call fcn.268eb4dc
sub esp, 0xb70
cmp dword [0x2692af54], 0x1e
push ebx
push esi
push edi
mov esi, ecx
jne 0x2687d13f
test byte [ebp + 0x10], 4
je 0x2687d13f
and dword [ebp + 0x10], 0xfffffffb
mov ebx, dword [sym.imp.MSVCRT.dll_wcslen]
push esi
call ebx
test eax, eax
pop ecx
je 0x2687d68d
push dword [ebp + 0xc]
call ebx
test eax, eax
pop ecx
je 0x2687d68d
push dword [ebp + 0xc]
call fcn.26882539
test eax, eax
pop ecx
je 0x2687d176
push 0x138c2
jmp 0x2687d692
push esi
call fcn.26882539
test eax, eax
pop ecx
jne 0x2687d1b7
push esi
call fcn.268d1f74
test eax, eax
pop ecx
jne 0x2687d1b7
push eax
push esi
call fcn.268d1f46
test eax, eax
pop ecx
pop ecx
jne 0x2687d1b7
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
push esi
push 0x138c3
push eax
call dword [ecx + 0x3c]
mov ebx, 0x268f3f58
call fcn.268e6bb2
jmp 0x2687d69f
push esi
call fcn.26882539
test eax, eax
pop ecx
jne 0x2687d435
push eax
push esi
call fcn.268d1f46
test eax, eax
pop ecx
pop ecx
je 0x2687d435
test byte [ebp + 0x10], 6
jne 0x2687d435
lea eax, [ebp - 0xb7c]
push eax
lea eax, [ebp - 0x650]
push eax
mov edi, 0x104
push edi
push esi
call fcn.268d2f99
lea eax, [ebp - 0xb7c]
push eax
lea eax, [ebp - 0x238]
push eax
push edi
push dword [ebp + 0xc]
call fcn.268d2f99
add esp, 0x20
lea eax, [ebp - 0x238]
push eax
lea esi, [ebp + 0x10]
call fcn.268e2ff3
xor ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebp + 0xc]
xor ecx, ecx
push eax
inc ecx
mov edi, esi
call fcn.268e3617
mov byte [ebp - 4], 1
mov esi, 0x26911198
mov edx, esi
mov ecx, eax
call fcn.268e30a7
mov edi, eax
mov byte [ebp - 4], bl
lea eax, [ebp + 0xc]
call fcn.268e3036
cmp edi, ebx
je 0x2687d29f
xor eax, eax
mov word [ebp - 0x444], bx
mov ecx, 0x82
lea edi, [ebp - 0x442]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x444]
push eax
push ebx
lea ecx, [ebp - 0x650]
call fcn.26863476
lea eax, [ebp - 0x444]
push eax
lea eax, [ebp - 0x238]
push eax
call dword [sym.imp.MSVCRT.dll_wcscat]
add esp, 0x10
jmp 0x2687d33d
lea eax, [ebp + 0x10]
call fcn.268e3147
push eax
xor eax, eax
call fcn.268d1f74
test eax, eax
pop ecx
je 0x2687d302
push esi
mov esi, dword [sym.imp.MSVCRT.dll_wcscat]
lea eax, [ebp - 0x238]
push eax
call esi
xor eax, eax
mov word [ebp - 0x444], bx
mov ecx, 0x82
lea edi, [ebp - 0x442]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x444]
push eax
push ebx
lea ecx, [ebp - 0x650]
call fcn.26863476
lea eax, [ebp - 0x444]
push eax
lea eax, [ebp - 0x238]
push eax
call esi
add esp, 0x18
jmp 0x2687d33d
xor eax, eax
mov word [ebp - 0x444], bx
mov ecx, 0x82
lea edi, [ebp - 0x442]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x444]
push ebx
push eax
lea ecx, [ebp - 0x238]
call fcn.26863476
pop ecx
pop ecx
lea eax, [ebp - 0x444]
push eax
lea eax, [ebp + 0x10]
push eax
call fcn.268e34fd
lea eax, [ebp + 0x10]
call fcn.268e3147
push eax
xor eax, eax
call fcn.268d1f74
test eax, eax
pop ecx
jne 0x2687d387
lea eax, [ebp + 0x10]
call fcn.268e3147
mov esi, dword [ebp + 8]
mov edi, eax
mov eax, dword [esi]
push esi
call dword [eax + 0x3c]
push eax
push edi
call fcn.268d1b88
cmp eax, ebx
pop ecx
pop ecx
jne 0x2687d38a
mov eax, dword [esi]
push esi
call dword [eax + 0x3c]
push 2
mov ecx, eax
pop eax
call fcn.268e6b73
jmp 0x2687d422
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x650]
push eax
lea eax, [ebp - 0x238]
push eax
xor eax, eax
call fcn.268d1ada
test eax, eax
pop ecx
pop ecx
jne 0x2687d41f
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
cmp eax, 5
jne 0x2687d3e1
lea eax, [ebp - 0x238]
push 0x80
push eax
xor eax, eax
call fcn.268d2026
lea eax, [ebp - 0x650]
push eax
lea eax, [ebp - 0x238]
push eax
xor eax, eax
call fcn.268d1ada
add esp, 0x10
test eax, eax
jne 0x2687d41f
call edi
mov edi, eax
lea eax, [ebp - 0x238]
push eax
lea eax, [ebp - 0x650]
push eax
mov eax, dword [esi]
push 0x138c1
push esi
call dword [eax + 0x3c]
mov ebx, 0x268f3f58
call fcn.268e6bb2
mov eax, dword [esi]
add esp, 0xc
push esi
call dword [eax + 0x3c]
xor ebx, ebx
mov esi, eax
push ebx
mov eax, edi
call fcn.268e72f2
jmp 0x2687d422
xor ebx, ebx
inc ebx
or dword [ebp - 4], 0xffffffff
lea eax, [ebp + 0x10]
call fcn.268e3036
mov eax, ebx
jmp 0x2687d6a3
lea eax, [ebp - 0x764]
push eax
mov dword [ebp - 0x764], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x2687d6a1
lea eax, [ebp - 0xb7c]
push eax
lea eax, [ebp - 0x650]
push eax
mov edi, 0x104
push edi
push esi
call fcn.268d2f99
lea eax, [ebp - 0x650]
push eax
call ebx
and word [ebp + eax*2 - 0x64e], 0
lea eax, [ebp - 0xb7c]
push eax
lea eax, [ebp - 0x238]
push eax
push edi
push dword [ebp + 0xc]
call fcn.268d2f99
lea eax, [ebp - 0x238]
push eax
xor eax, eax
call fcn.268d1f74
add esp, 0x28
test eax, eax
je 0x2687d4ee
push esi
call fcn.26882539
test eax, eax
pop ecx
jne 0x2687d4ee
lea esi, [ebp - 0x238]
call fcn.268d1d97
lea eax, [ebp - 0x444]
push eax
lea eax, [ebp - 0xb7c]
push eax
lea ecx, [ebp - 0x650]
call fcn.26863476
lea eax, [ebp - 0x444]
push eax
mov eax, esi
push eax
call dword [sym.imp.MSVCRT.dll_wcscat]
add esp, 0x10
lea eax, [ebp - 0x238]
push eax
call ebx
xor esi, esi
mov word [ebp + eax*2 - 0x236], si
mov eax, dword [ebp + 8]
pop ecx
call fcn.268ac38c
lea ecx, [ebp - 0x650]
mov dword [ebp - 0x24], ecx
lea ecx, [ebp - 0x238]
push 2
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp + 0x10]
test cl, 4
mov dword [ebp - 0x2c], eax
pop eax
mov dword [ebp - 0x28], eax
mov word [ebp - 0x1c], 0x400
jne 0x2687d539
mov word [ebp - 0x1c], 0x410
mov dword [ebp + 0x10], ecx
and dword [ebp + 0x10], eax
jne 0x2687d545
or byte [ebp - 0x1c], 4
cmp dword [ebp - 0x754], 1
jne 0x2687d55d
cmp dword [ebp - 0x75c], esi
jne 0x2687d55d
or byte [ebp - 0x1c], 4
mov dword [ebp - 0x2c], esi
or byte [ebp - 0x1b], 2
test cl, 1
jne 0x2687d56c
or word [ebp - 0x1c], 0x1080
cmp word [ebp - 0x236], 0x3a
mov dword [ebp - 0x16], esi
mov dword [ebp - 0x12], esi
jne 0x2687d592
mov edx, dword [ebp + 8]
lea ecx, [ebp - 0x238]
call fcn.2687dcf8
test eax, eax
je 0x2687d6a1
lea eax, [ebp - 0x650]
push eax
call fcn.26882539
test eax, eax
pop ecx
je 0x2687d5c1
push 0xffffffffffffffff
push edi
lea eax, [ebp - 0x238]
lea ebx, [ebp - 0x970]
call fcn.268dfa74
mov ebx, dword [sym.imp.MSVCRT.dll_wcslen]
xor esi, esi
jmp 0x2687d5da
lea eax, [ebp - 0x444]
push eax
lea eax, [ebp - 0x970]
push eax
lea ecx, [ebp - 0x238]
call fcn.26863476
pop ecx
pop ecx
lea eax, [ebp - 0x970]
push eax
call ebx
cmp eax, 3
pop ecx
ja 0x2687d5f5
cmp word [ebp - 0x96e], 0x3a
je 0x2687d615
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x3c]
push eax
lea eax, [ebp - 0x970]
push eax
call fcn.268d1b88
test eax, eax
pop ecx
pop ecx
je 0x2687d6a1
cmp dword [ebp + 0x10], 0
mov eax, dword [ebp - 0x2c]
mov ebx, dword [sym.imp.USER32.dll_EnableWindow]
mov dword [ebp + 0xc], eax
je 0x2687d640
test eax, eax
je 0x2687d640
push eax
call dword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
je 0x2687d640
push 0
push dword [ebp + 0xc]
call ebx
xor esi, esi
inc esi
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
mov edi, eax
neg edi
sbb edi, edi
inc edi
test esi, esi
je 0x2687d65c
push 1
push dword [ebp + 0xc]
call ebx
test edi, edi
jne 0x2687d689
lea eax, [ebp - 0x238]
push eax
lea eax, [ebp - 0x650]
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
push 0x138c1
push eax
call dword [ecx + 0x3c]
mov ebx, 0x268f3f58
call fcn.268e6bb2
add esp, 0xc
mov eax, edi
jmp 0x2687d6a3
push 0x138bb
push dword [ebp + 8]
mov ebx, 0x268f3f58
call fcn.268c708f
pop ecx
pop ecx
xor eax, eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0xc