Function at 0x4373c0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c2501
mov eax, dword fs:[0]
push eax
sub esp, 0x1f4
mov eax, dword [0x4f4214]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x1f8]
push ecx
mov ecx, 0x4d4e80
mov dword [ebp - 0x200], eax
mov dword [ebp - 0x1fc], 0
call fcn.004152e0
mov dword [ebp - 4], 1
mov ebx, dword [sym.imp.KERNEL32.dll_GetVersionExW]
lea edx, [ebp - 0x1f4]
push edx
mov dword [ebp - 0x1f4], 0x11c
call ebx
mov esi, eax
test esi, esi
jne 0x43748b
lea eax, [ebp - 0x1f4]
push eax
mov dword [ebp - 0x1f4], 0x114
call ebx
test eax, eax
jne 0x43748b
mov esi, dword [ebp - 0x200]
push esi
mov ecx, 0x4d4e80
call fcn.004152e0
mov dword [ebp - 0x1fc], 1
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x1f8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x437aff
mov eax, dword [ebp - 0x1e4]
sub eax, 0
je 0x437a6a
dec eax
je 0x4379ba
dec eax
je 0x4374c5
mov ecx, dword [ebp - 0x1ec]
mov edx, dword [ebp - 0x1f0]
push ecx
push edx
push str.Windows__d._d
push 0x63
lea eax, [ebp - 0xd8]
push eax
jmp 0x437a86
mov eax, dword [ebp - 0x1f0]
cmp eax, 4
ja 0x437565
test esi, esi
je 0x43753b
mov cl, byte [ebp - 0xda]
lea edx, [ebp - 0xd8]
cmp cl, 3
jne 0x437514
test byte [ebp - 0xdc], 2
mov ecx, dword [ebp - 0x1ec]
push ecx
push eax
je 0x437507
push str.Windows_NT__d._d_Server_Enterprise_Edition
push 0x63
push edx
jmp 0x437a86
push str.Windows_NT__d._d_Server
push 0x63
push edx
jmp 0x437a86
cmp cl, 1
mov ecx, dword [ebp - 0x1ec]
push ecx
push eax
jne 0x43752e
push str.Windows_NT_Workstation__d._d
push 0x63
push edx
jmp 0x437a86
push str.Windows_NT__d._d
push 0x63
push edx
jmp 0x437a86
mov edx, dword [ebp - 0x1ec]
lea ecx, [ebp - 0x1e0]
push ecx
push edx
push eax
push str.Windows_NT__d._d__s
lea eax, [ebp - 0xd8]
push 0x63
push eax
call fcn.0049eb02
add esp, 0x18
jmp 0x437a8e
cmp eax, 5
jne 0x437904
mov ecx, dword [ebp - 0x1ec]
mov eax, ecx
sub eax, 0
je 0x437837
dec eax
je 0x4376f0
dec eax
je 0x437591
push ecx
push 5
jmp 0x437a78
test esi, esi
je 0x4376d5
cmp byte [ebp - 0xda], 3
jne 0x4376ba
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x4375c2
push str.Windows_Server_2003_R2
push 0x63
lea edx, [ebp - 0xd8]
push edx
jmp 0x4375d0
push str.Windows_Server_2003
push 0x63
lea eax, [ebp - 0xd8]
push eax
call fcn.0049eb02
mov eax, dword [ebp - 0xdc]
add esp, 0xc
test eax, 0x400
je 0x437628
call fcn.00435420
lea ecx, [ebp - 0xd8]
test eax, eax
je 0x43760c
push ecx
push str._s_x64_Web_Edition
mov edx, ecx
push 0x63
push edx
call fcn.0049eb02
add esp, 0x10
jmp 0x437a8e
lea eax, [ebp - 0xd8]
push eax
push str._s_Web_Edition
push 0x63
push ecx
call fcn.0049eb02
add esp, 0x10
jmp 0x437a8e
test al, 2
je 0x43766f
call fcn.00435420
lea edx, [ebp - 0xd8]
test eax, eax
je 0x437653
push edx
push str._s_x64_Enterprise_Edition
mov eax, edx
push 0x63
push eax
call fcn.0049eb02
add esp, 0x10
jmp 0x437a8e
lea ecx, [ebp - 0xd8]
push ecx
push str._s_Enterprise_Edition
push 0x63
push edx
call fcn.0049eb02
add esp, 0x10
jmp 0x437a8e
test al, al
jns 0x437a8e
call fcn.00435420
test eax, eax
lea eax, [ebp - 0xd8]
je 0x43769e
push eax
push str._s_x64_Datacenter_Edition
mov ecx, eax
push 0x63
push ecx
call fcn.0049eb02
add esp, 0x10
jmp 0x437a8e
lea edx, [ebp - 0xd8]
push edx
push str._s_Datacenter_Edition
push 0x63
push eax
call fcn.0049eb02
add esp, 0x10
jmp 0x437a8e
push str.Windows_XP_Professional_x64_Edition
lea ecx, [ebp - 0xd8]
push 0x63
push ecx
call fcn.0049eb02
add esp, 0xc
jmp 0x437a8e
push str.Windows_2003_family
lea edx, [ebp - 0xd8]
push 0x63
push edx
call fcn.0049eb02
add esp, 0xc
jmp 0x437a8e
test esi, esi
je 0x437815
cmp byte [ebp - 0xda], 1
jne 0x4377c8
test dword [ebp - 0xdc], 0x200
je 0x4377a6
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x57
call esi
test eax, eax
je 0x43773e
push str.Windows_XP_Media_Center_Edition
lea eax, [ebp - 0xd8]
push 0x63
push eax
call fcn.0049eb02
add esp, 0xc
jmp 0x437a8e
push 0x58
call esi
test eax, eax
je 0x437761
push str.Windows_XP_Starter_Edition
lea ecx, [ebp - 0xd8]
push 0x63
push ecx
call fcn.0049eb02
add esp, 0xc
jmp 0x437a8e
push 0x56
call esi
test eax, eax
je 0x437784
push str.Windows_XP_Tablet_PC_Edition
lea edx, [ebp - 0xd8]
push 0x63
push edx
call fcn.0049eb02
add esp, 0xc
jmp 0x437a8e
lea eax, [ebp - 0x1e0]
push eax
push str.Windows_XP_Home_Edition__s
lea ecx, [ebp - 0xd8]
push 0x63
push ecx
call fcn.0049eb02
add esp, 0x10
jmp 0x437a8e
lea edx, [ebp - 0x1e0]
push edx
push str.Windows_XP_Professional__s
lea eax, [ebp - 0xd8]
push 0x63
push eax
call fcn.0049eb02
add esp, 0x10
jmp 0x437a8e
test byte [ebp - 0xdc], 0x40
je 0x4377f3
lea ecx, [ebp - 0x1e0]
push ecx
push str.Windows_XP_Embedded_Edition__s
lea edx, [ebp - 0xd8]
push 0x63
push edx
call fcn.0049eb02
add esp, 0x10
jmp 0x437a8e
lea eax, [ebp - 0x1e0]
push eax
push str.Windows_XP__s
lea ecx, [ebp - 0xd8]
push 0x63
push ecx
call fcn.0049eb02
add esp, 0x10
jmp 0x437a8e
lea edx, [ebp - 0x1e0]
push edx
push str.Windows_XP__s
lea eax, [ebp - 0xd8]
push 0x63
push eax
call fcn.0049eb02
add esp, 0x10
jmp 0x437a8e
test esi, esi
je 0x4378e2
mov al, byte [ebp - 0xda]
cmp al, 1
jne 0x437864
push str.Windows_2000_Professional
lea ecx, [ebp - 0xd8]
push 0x63
push ecx
call fcn.0049eb02
add esp, 0xc
jmp 0x437a8e
cmp al, 3
jne 0x4378c7
mov al, byte [ebp - 0xdc]
test al, 2
je 0x43788d
push str.Windows_2000_Advanced_Server
lea edx, [ebp - 0xd8]
push 0x63
push edx
call fcn.0049eb02
add esp, 0xc
jmp 0x437a8e
test al, al
jns 0x4378ac
push str.Windows_2000_Datacenter_Server
lea eax, [ebp - 0xd8]
push 0x63
push eax
call fcn.0049eb02
add esp, 0xc
jmp 0x437a8e
push str.Windows_2000_Server
lea ecx, [ebp - 0xd8]
push 0x63
push ecx
call fcn.0049eb02
add esp, 0xc
jmp 0x437a8e
push str.Windows_2000_Home_Edition
lea edx, [ebp - 0xd8]
push 0x63
push edx
call fcn.0049eb02
add esp, 0xc
jmp 0x437a8e
lea eax, [ebp - 0x1e0]
push eax
push str.Windows_2000__s
lea ecx, [ebp - 0xd8]
push 0x63
push ecx
call fcn.0049eb02
add esp, 0x10
jmp 0x437a8e
cmp eax, 6
jne 0x43799f
test esi, esi
je 0x43797d
mov al, byte [ebp - 0xda]
cmp al, 1
jne 0x43795a
call fcn.00435420
test eax, eax
je 0x43793f
push str.Windows_7_64_bit
lea edx, [ebp - 0xd8]
push 0x63
push edx
call fcn.0049eb02
add esp, 0xc
jmp 0x437a8e
push str.Windows_7_32_bit
lea eax, [ebp - 0xd8]
push 0x63
push eax
call fcn.0049eb02
add esp, 0xc
jmp 0x437a8e
cmp al, 3
jne 0x437a8e
push str.Windows_Server_2008
lea ecx, [ebp - 0xd8]
push 0x63
push ecx
call fcn.0049eb02
add esp, 0xc
jmp 0x437a8e
lea edx, [ebp - 0x1e0]
push edx
push str.Windows_Longhorn__s
lea eax, [ebp - 0xd8]
push 0x63
push eax
call fcn.0049eb02
add esp, 0x10
jmp 0x437a8e
mov ecx, dword [ebp - 0x1ec]
push ecx
push eax
push str.Windows__d._d
push 0x63
lea edx, [ebp - 0xd8]
push edx
jmp 0x437a86
mov eax, dword [ebp - 0x1ec]
test eax, eax
je 0x437a27
cmp eax, 0xa
je 0x4379ed
cmp eax, 0x5a
jne 0x437a8e
push str.Windows_Millenium_Edition
lea eax, [ebp - 0xd8]
push 0x63
push eax
call fcn.0049eb02
add esp, 0xc
jmp 0x437a8e
cmp word [ebp - 0x1de], 0x41
jne 0x437a0f
push str.Windows_98_Second_Edition
lea ecx, [ebp - 0xd8]
push 0x63
push ecx
call fcn.0049eb02
add esp, 0xc
jmp 0x437a8e
push str.Windows_98
lea edx, [ebp - 0xd8]
push 0x63
push edx
call fcn.0049eb02
add esp, 0xc
jmp 0x437a8e
mov ax, word [ebp - 0x1de]
cmp ax, 0x42
je 0x437a52
cmp ax, 0x43
je 0x437a52
push str.Windows_95
lea eax, [ebp - 0xd8]
push 0x63
push eax
call fcn.0049eb02
add esp, 0xc
jmp 0x437a8e
push str.Windows_95_OSR2
lea ecx, [ebp - 0xd8]
push 0x63
push ecx
call fcn.0049eb02
add esp, 0xc
jmp 0x437a8e
mov edx, dword [ebp - 0x1ec]
mov eax, dword [ebp - 0x1f0]
push edx
push eax
push str.Windows__d._d
push 0x63
lea ecx, [ebp - 0xd8]
push ecx
call fcn.0049eb02
add esp, 0x14
lea eax, [ebp - 0xd8]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x437a97
sub eax, edx
lea edx, [ebp - 0xd8]
sar eax, 1
push edx
lea ecx, [ebp - 0x1f8]
push ecx
mov ebx, eax
call fcn.004026a0
mov eax, dword [ebp - 0x1f8]
add eax, 0xfffffff0
call fcn.004027b0
mov esi, dword [ebp - 0x200]
add eax, 0x10
mov dword [esi], eax
mov eax, 1
mov byte [ebp - 4], al
mov dword [ebp - 0x1fc], eax
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x1f8]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x437b0b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0049c72a
mov esp, ebp
pop ebp
ret