Function at 0x51d26c
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe48
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x1b4], eax
mov dword [ebp - 0x1b8], eax
mov dword [ebp - 0x1a0], eax
mov dword [ebp - 0x184], eax
mov dword [ebp - 0x160], eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], eax
xor eax, eax
push ebp
push 0x51dde4
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x41a7bc]
call fcn.004272e0
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x154]
xor ecx, ecx
mov edx, 0x11c
call fcn.00404b28
mov dword [ebp - 0x154], 0x11c
lea eax, [ebp - 0x154]
push eax
call sub.kernel32.dll_GetVersionExW
cmp eax, 1
sbb eax, eax
inc eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
jne 0x51d320
lea eax, [ebp - 0x154]
xor ecx, ecx
mov edx, 0x11c
call fcn.00404b28
mov dword [ebp - 0x154], 0x114
lea eax, [ebp - 0x154]
push eax
call sub.kernel32.dll_GetVersionExW
mov byte [ebp - 0x29], 0
lea eax, [ebp - 0xc]
call fcn.00406c58
call fcn.0051ec5c
mov ebx, eax
lea eax, [ebp - 0x10]
call fcn.0051eae4
test al, al
je 0x51d364
push 0
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x15c], eax
mov byte [ebp - 0x158], 0x11
lea ecx, [ebp - 0x15c]
mov edx, 0x51de00
mov eax, dword [ebp - 0x1c]
call fcn.004270ac
cmp dword [ebp - 0x150], 6
jne 0x51d3a9
cmp dword [ebp - 0x14c], 2
jne 0x51d3a9
lea ecx, [ebp - 0x38]
lea edx, [ebp - 0x34]
lea eax, [ebp - 0x30]
call fcn.0051e9c8
test al, al
je 0x51d3a9
cmp dword [ebp - 0x30], 6
jb 0x51d3a9
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x150], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x14c], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x144]
sub eax, 1
jb 0x51dd4d
je 0x51dcb9
dec eax
jne 0x51dd61
mov byte [0x67625c], 1
mov eax, dword [ebp - 0x150]
cmp eax, 6
jg 0x51d3e9
je 0x51d4a8
sub eax, 5
jb 0x51d401
je 0x51d41a
jmp 0x51d6f6
sub eax, 0xa
je 0x51d5ba
dec eax
sub eax, 0x5a
jb 0x51d6d8
jmp 0x51d6f6
mov edx, 0x51de24
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
mov byte [0x67625d], 1
jmp 0x51d70e
mov eax, dword [ebp - 0x14c]
sub eax, 1
jb 0x51d42c
je 0x51d445
dec eax
je 0x51d45e
jmp 0x51d496
mov byte [0x676260], 1
mov edx, 0x51de48
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51d70e
mov byte [0x67625e], 1
mov edx, 0x51de70
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51d70e
cmp byte [ebp - 0x3a], 1
jne 0x51d47d
mov byte [0x67625f], 1
mov edx, 0x51de94
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51d70e
mov byte [0x676261], 1
mov edx, 0x51ded8
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51d70e
mov edx, 0x51df0c
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51d70e
mov eax, dword [ebp - 0x14c]
cmp eax, 2
jg 0x51d4c1
je 0x51d532
sub eax, 1
jb 0x51d4d9
je 0x51d507
jmp 0x51d58c
sub eax, 3
je 0x51d55d
dec eax
sub eax, 0x61
jb 0x51d588
jmp 0x51d58c
cmp byte [ebp - 0x3a], 1
jne 0x51d4ee
mov edx, 0x51df2c
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51d4fb
mov edx, 0x51df58
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
mov byte [0x676262], 1
jmp 0x51d58c
cmp byte [ebp - 0x3a], 1
jne 0x51d51c
mov edx, 0x51df90
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51d529
mov edx, 0x51dfb4
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
mov byte [0x676263], 1
jmp 0x51d58c
cmp byte [ebp - 0x3a], 1
jne 0x51d547
mov edx, 0x51dff0
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51d554
mov edx, 0x51e014
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
mov byte [0x676264], 1
jmp 0x51d58c
cmp byte [ebp - 0x3a], 1
jne 0x51d572
mov edx, 0x51e04c
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51d57f
mov edx, 0x51e074
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
mov byte [0x676264], 1
jmp 0x51d58c
mov byte [ebp - 0x29], 1
lea ecx, [ebp - 8]
mov edx, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x150]
call fcn.0051bde4
cmp dword [ebp - 8], 0
je 0x51d70e
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51d70e
mov eax, dword [ebp - 0x14c]
sub eax, 1
jae 0x51d70e
cmp dword [ebp - 0x148], 0x55f0
jae 0x51d5eb
mov edx, 0x51e0b0
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
mov byte [0x676265], 1
jmp 0x51d5ff
mov edx, 0x51e0d4
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
mov byte [0x676266], 1
lea ecx, [ebp - 8]
mov edx, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x150]
call fcn.0051bde4
cmp dword [ebp - 8], 0
je 0x51d624
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
mov dl, 1
mov eax, dword [0x466144]
call fcn.00467280
mov dword [ebp - 0x18], eax
xor eax, eax
push ebp
push 0x51d6bc
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 0x80000002
mov eax, dword [ebp - 0x18]
call fcn.00467368
test bl, bl
je 0x51d65e
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x18], 0x20119
jmp 0x51d668
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x18], 0x20019
xor ecx, ecx
mov edx, 0x51e0f8
mov eax, dword [ebp - 0x18]
call fcn.004674b0
test al, al
je 0x51d6b2
lea ecx, [ebp - 0xc]
mov edx, 0x51e160
mov eax, dword [ebp - 0x18]
call fcn.00467e2c
lea edx, [ebp - 0x160]
mov eax, dword [ebp - 0xc]
call fcn.0041e624
cmp dword [ebp - 0x160], 0
jne 0x51d6b2
lea ecx, [ebp - 0xc]
mov edx, 0x51e18c
mov eax, dword [ebp - 0x18]
call fcn.00467e2c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x51d6ce
mov eax, dword [ebp - 0x18]
call fcn.00405180
jmp 0x51d70e
mov edx, 0x51e1ac
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
mov edx, dword [ebp - 0x150]
call fcn.00426cd8
mov byte [ebp - 0x29], 1
jmp 0x51d70e
mov edx, 0x51e1ac
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
mov edx, dword [ebp - 0x150]
call fcn.00426cd8
cmp byte [0x676260], 0
jne 0x51d763
cmp byte [0x67625e], 0
jne 0x51d763
cmp byte [0x67625f], 0
jne 0x51d763
cmp byte [0x676261], 0
jne 0x51d763
cmp byte [0x676262], 0
jne 0x51d763
cmp byte [0x676263], 0
jne 0x51d763
cmp byte [0x676264], 0
jne 0x51d763
cmp byte [0x676265], 0
jne 0x51d763
cmp byte [0x676266], 0
jne 0x51d763
xor eax, eax
jmp 0x51d765
mov al, 1
mov byte [0x676268], al
cmp byte [0x67625e], 0
jne 0x51d7b6
cmp byte [0x67625f], 0
jne 0x51d7b6
cmp byte [0x676261], 0
jne 0x51d7b6
cmp byte [0x676262], 0
jne 0x51d7b6
cmp byte [0x676263], 0
jne 0x51d7b6
cmp byte [0x676264], 0
jne 0x51d7b6
cmp byte [0x676265], 0
jne 0x51d7b6
cmp byte [0x676266], 0
jne 0x51d7b6
xor eax, eax
jmp 0x51d7b8
mov al, 1
mov byte [0x676267], al
cmp byte [0x676261], 0
jne 0x51d7f7
cmp byte [0x676262], 0
jne 0x51d7f7
cmp byte [0x676263], 0
jne 0x51d7f7
cmp byte [0x676264], 0
jne 0x51d7f7
cmp byte [0x676265], 0
jne 0x51d7f7
cmp byte [0x676266], 0
jne 0x51d7f7
xor eax, eax
jmp 0x51d7f9
mov al, 1
mov byte [0x676269], al
cmp byte [0x676262], 0
jne 0x51d835
cmp byte [0x676263], 0
jne 0x51d835
cmp byte [0x676264], 0
jne 0x51d835
cmp byte [0x676265], 0
jne 0x51d835
cmp byte [0x676266], 0
jne 0x51d835
cmp byte [ebp - 0x29], 0
jne 0x51d835
xor eax, eax
jmp 0x51d837
mov al, 1
mov byte [0x67626a], al
cmp byte [0x676263], 0
jne 0x51d86a
cmp byte [0x676264], 0
jne 0x51d86a
cmp byte [0x676265], 0
jne 0x51d86a
cmp byte [0x676266], 0
jne 0x51d86a
cmp byte [ebp - 0x29], 0
jne 0x51d86a
xor eax, eax
jmp 0x51d86c
mov al, 1
mov byte [0x67626b], al
cmp byte [0x676264], 0
jne 0x51d896
cmp byte [0x676265], 0
jne 0x51d896
cmp byte [0x676266], 0
jne 0x51d896
cmp byte [ebp - 0x29], 0
jne 0x51d896
xor eax, eax
jmp 0x51d898
mov al, 1
mov byte [0x67626c], al
cmp byte [0x676265], 0
jne 0x51d8b9
cmp byte [0x676266], 0
jne 0x51d8b9
cmp byte [ebp - 0x29], 0
jne 0x51d8b9
xor eax, eax
jmp 0x51d8bb
mov al, 1
mov byte [0x67626d], al
movzx eax, byte [0x676266]
or al, byte [ebp - 0x29]
mov byte [0x67626e], al
cmp byte [ebp - 0x11], 0
je 0x51daa6
movzx eax, byte [ebp - 0x3a]
dec al
je 0x51d8f6
dec al
je 0x51d9ca
dec al
je 0x51d9dc
jmp 0x51db29
cmp byte [0x67626a], 0
jne 0x51db29
movzx eax, word [ebp - 0x3c]
test ah, 2
je 0x51d91e
mov edx, 0x51e1cc
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51db29
test al, 0x40
je 0x51d934
mov edx, 0x51e1f4
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51db29
push 0x57
call sub.user32.dll_GetSystemMetrics
test eax, eax
je 0x51d9b8
mov edx, 0x51e214
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
call fcn.0051bc88
fstp qword [ebp - 0x28]
wait
fld qword [ebp - 0x28]
fcomp dword [0x51e220]
wait
fnstsw ax
sahf
jb 0x51d980
fld qword [ebp - 0x28]
fcomp dword [0x51e224]
wait
fnstsw ax
sahf
jae 0x51d980
mov edx, 0x51e234
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
fld qword [ebp - 0x28]
fcomp dword [0x51e224]
wait
fnstsw ax
sahf
jb 0x51db29
fld qword [ebp - 0x28]
fcomp dword [0x51e240]
wait
fnstsw ax
sahf
ja 0x51db29
mov edx, 0x51e250
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51db29
mov edx, 0x51e268
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51db29
mov edx, 0x51e290
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51db29
movzx eax, word [ebp - 0x3c]
test ah, 4
je 0x51d9f7
mov edx, 0x51e2c4
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51db29
test ah, 0x40
je 0x51da0e
mov edx, 0x51e2ec
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51db29
test al, 0x80
je 0x51da24
mov edx, 0x51e32c
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51db29
test al, 1
je 0x51da3a
mov edx, 0x51e350
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51db29
test al, 0x20
je 0x51da50
mov edx, 0x51e37c
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51db29
test al, 2
je 0x51da66
mov edx, 0x51e3c0
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51db29
test ah, 0x20
je 0x51da7d
mov edx, 0x51e3e4
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51db29
test ah, 1
jne 0x51da94
mov edx, 0x51e410
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51db29
mov edx, 0x51e444
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51db29
mov dl, 1
mov eax, dword [0x466144]
call fcn.00467280
mov dword [ebp - 0x18], eax
mov edx, 0x80000002
mov eax, dword [ebp - 0x18]
call fcn.00467368
mov edx, 0x51e464
mov eax, dword [ebp - 0x18]
call fcn.004675e4
test al, al
je 0x51db21
lea ecx, [ebp - 4]
mov edx, 0x51e4d0
mov eax, dword [ebp - 0x18]
call fcn.00467e2c
mov edx, 0x51e4f4
mov eax, dword [ebp - 4]
call fcn.0041e31c
test eax, eax
jne 0x51db03
mov edx, 0x51e50c
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51db21
mov edx, 0x51e534
mov eax, dword [ebp - 4]
call fcn.0041e31c
test eax, eax
jne 0x51db21
mov edx, 0x51e554
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
mov eax, dword [ebp - 0x18]
call fcn.00405180
cmp dword [ebp - 0xc], 0
jne 0x51dc0c
cmp word [ebp - 0x140], 0
je 0x51dbb9
push 3
mov eax, dword [ebp - 0x150]
mov dword [ebp - 0x180], eax
mov byte [ebp - 0x17c], 0
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x178], eax
mov byte [ebp - 0x174], 0
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x170], eax
mov byte [ebp - 0x16c], 0
lea eax, [ebp - 0x184]
lea edx, [ebp - 0x140]
mov ecx, 0x80
call fcn.00407af4
mov eax, dword [ebp - 0x184]
mov dword [ebp - 0x168], eax
mov byte [ebp - 0x164], 0x11
lea ecx, [ebp - 0x180]
mov edx, 0x51e570
mov eax, dword [ebp - 0x1c]
call fcn.004270ac
jmp 0x51dd61
push 2
mov eax, dword [ebp - 0x150]
mov dword [ebp - 0x19c], eax
mov byte [ebp - 0x198], 0
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x194], eax
mov byte [ebp - 0x190], 0
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x18c], eax
mov byte [ebp - 0x188], 0
lea ecx, [ebp - 0x19c]
mov edx, 0x51e5bc
mov eax, dword [ebp - 0x1c]
call fcn.004270ac
jmp 0x51dd61
cmp word [ebp - 0x140], 0
je 0x51dc7c
push 2
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x19c], eax
mov byte [ebp - 0x198], 0x11
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x194], eax
mov byte [ebp - 0x190], 0
lea eax, [ebp - 0x1a0]
lea edx, [ebp - 0x140]
mov ecx, 0x80
call fcn.00407af4
mov eax, dword [ebp - 0x1a0]
mov dword [ebp - 0x18c], eax
mov byte [ebp - 0x188], 0x11
lea ecx, [ebp - 0x19c]
mov edx, 0x51e600
mov eax, dword [ebp - 0x1c]
call fcn.004270ac
jmp 0x51dd61
push 1
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x1b0], eax
mov byte [ebp - 0x1ac], 0x11
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x1a8], eax
mov byte [ebp - 0x1a4], 0
lea ecx, [ebp - 0x1b0]
mov edx, 0x51e644
mov eax, dword [ebp - 0x1c]
call fcn.004270ac
jmp 0x51dd61
mov byte [0x67625c], 0
cmp dword [ebp - 0x150], 4
jne 0x51dcf6
cmp dword [ebp - 0x14c], 0
jne 0x51dcf6
mov edx, 0x51e680
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
cmp word [ebp - 0x13e], 0x43
jne 0x51dcf6
mov edx, 0x51e6a4
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
cmp dword [ebp - 0x150], 4
jne 0x51dd2c
cmp dword [ebp - 0x14c], 0xa
jne 0x51dd2c
mov edx, 0x51e6bc
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
cmp word [ebp - 0x13e], 0x41
jne 0x51dd2c
mov edx, 0x51e6e0
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
cmp dword [ebp - 0x150], 4
jne 0x51dd61
cmp dword [ebp - 0x14c], 0x5a
jne 0x51dd61
mov edx, 0x51e6f4
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
jmp 0x51dd61
mov byte [0x67625c], 0
mov edx, 0x51e718
mov eax, dword [ebp - 0x1c]
call fcn.00426a40
lea edx, [ebp - 0x1b8]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
call dword [ecx - 0x24]
mov eax, dword [ebp - 0x1b8]
lea edx, [ebp - 0x1b4]
call fcn.0041e624
mov edx, dword [ebp - 0x1b4]
mov eax, 0x683338
call fcn.00407038
mov eax, dword [ebp - 0x1c]
call fcn.00405180
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x51ddeb
lea eax, [ebp - 0x1b8]
mov edx, 2
call fcn.00406cb8
lea eax, [ebp - 0x1a0]
call fcn.00406c58
lea eax, [ebp - 0x184]
call fcn.00406c58
lea eax, [ebp - 0x160]
call fcn.00406c58
lea eax, [ebp - 0x10]
mov edx, 4
call fcn.00406cb8
ret