Function at 0x59be80
Capabilities:
Check os version

Disassembly:
push ebp
xor eax, eax
mov ecx, 0x27
mov ebp, esp
push edi
push esi
push ebx
lea ebx, [ebp - 0x150]
mov edi, ebx
sub esp, 0x17c
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExA]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x150], 0x9c
mov dword [esp], ebx
call esi
sub esp, 4
test eax, eax
je 0x59bf10
cmp dword [ebp - 0x140], 2
je 0x59bed0
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [ebp - 0x14c]
cmp edx, 6
ja 0x59bf3c
je 0x59bf31
mov eax, dword [ebp - 0x148]
cmp eax, 0xf
ja 0x59bec2
shl edx, 4
movzx ecx, byte [ebp - 0xb6]
or edx, eax
lea eax, [edx - 0x50]
cmp eax, 0x60
ja case.0x59bf00.83
jmp dword [eax*4 + 0x729bc4]
mov ecx, 0x27
mov edi, ebx
rep stosd dword es:[edi], eax
mov dword [ebp - 0x150], 0x94
mov dword [esp], ebx
call esi
sub esp, 4
test eax, eax
jne 0x59beb9
jmp 0x59bec2
mov eax, dword [ebp - 0x148]
cmp eax, 1
jbe 0x59bee8
mov eax, dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
mov dword [esp + 0xc], 1
mov dword [esp + 8], 2
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [ebp - 0x164], eax
call eax
mov esi, edx
mov edx, dword [ebp - 0x14c]
sub esp, 0x10
mov ebx, eax
cmp edx, 9
ja 0x59bfe7
mov dword [ebp - 0x15c], esi
mov dword [ebp - 0x160], ebx
mov esi, edx
lea edi, [ebp - 0xb4]
xor eax, eax
mov ecx, 0x27
mov edx, dword [ebp - 0x15c]
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x160]
mov dword [ebp - 0xb4], 0x9c
mov dword [ebp - 0xb0], esi
mov dword [esp + 0xc], edx
mov dword [esp + 4], 2
mov dword [esp + 8], eax
lea eax, [ebp - 0xb4]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoA]
sub esp, 0x10
test eax, eax
jne 0x59bff5
add esi, 1
cmp esi, 0xa
jne 0x59bf88
mov edx, dword [ebp - 0x14c]
cmp edx, 0xf
ja 0x59bec2
jmp 0x59bedd
cmp dword [ebp - 0x14c], esi
jae 0x59c00d
mov dword [ebp - 0x14c], esi
mov dword [ebp - 0x148], 0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 1
mov dword [esp], 0
mov dword [esp + 4], 0
call dword [ebp - 0x164]
mov esi, edx
mov edx, dword [ebp - 0x148]
sub esp, 0x10
mov ebx, eax
cmp edx, 9
ja 0x59bfe1
mov dword [ebp - 0x15c], esi
mov dword [ebp - 0x160], ebx
mov esi, edx
lea edi, [ebp - 0xb4]
xor eax, eax
mov ecx, 0x27
mov edx, dword [ebp - 0x15c]
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x160]
mov dword [ebp - 0xb4], 0x9c
mov dword [ebp - 0xac], esi
mov dword [esp + 0xc], edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
lea eax, [ebp - 0xb4]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoA]
sub esp, 0x10
test eax, eax
jne 0x59c0b0
add esi, 1
cmp esi, 0xa
jne 0x59c052
jmp 0x59bfe1
mov dword [ebp - 0x148], esi
jmp 0x59bfe1
mov esi, str.2000
mov ebx, 1
lea esi, [esi]
mov dword [ebp - 0x154], 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea edx, [ebp - 0x154]
mov dword [esp], eax
mov dword [esp + 4], edx
call dword [sym.imp.KERNEL32.dll_IsWow64Process]
mov eax, dword [ebp - 0x154]
mov edx, str.64_bit
sub esp, 8
test eax, eax
mov eax, str.32_bit
cmovne eax, edx
movzx edx, word [ebp - 0xba]
test dx, dx
jne 0x59c2c0
movzx edx, word [ebp - 0xbc]
test dx, dx
jne 0x59c280
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.Windows__s__s
mov dword [esp + 8], str.get_windows_version
mov dword [esp + 4], 4
mov dword [esp], 0
call sym._usbi_log
mov eax, ebx
jmp 0x59bec4
cmp cl, 2
mov eax, str.2022
mov esi, 0x729b84
cmovae esi, eax
mov ebx, 9
jmp 0x59c0d0
cmp cl, 1
jbe 0x59c302
cmp dword [ebp - 0x144], 0x4e1f
jbe 0x59c31d
mov esi, str.2022
mov ebx, 9
jmp 0x59c0d0
cmp cl, 1
mov eax, 0x729b54
mov esi, str.2008_R2
cmovbe esi, eax
mov ebx, 5
jmp 0x59c0d0
cmp cl, 1
mov eax, str.Vista
mov esi, str.2008
cmovbe esi, eax
mov ebx, 4
jmp 0x59c0d0
cmp cl, 1
mov eax, 0x729b56
mov esi, str.2012_R2
cmovbe esi, eax
mov ebx, 7
jmp 0x59c0d0
cmp cl, 2
mov eax, str.2012
mov esi, 0x729b47
cmovae esi, eax
mov ebx, 6
cmp dword [ebp - 0x144], 0x23f0
mov eax, str.8__or_later_
cmove esi, eax
jmp 0x59c0d0
mov esi, str.2003
mov ebx, 3
jmp 0x59c0d0
mov esi, 0x729b79
mov ebx, 2
jmp 0x59c0d0
cmp edx, 0x4f
jbe 0x59bec2
cmp edx, 0x62
jne 0x59c32c
mov esi, str.12_or_later
mov ebx, 0xa
jmp 0x59c225
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.Windows__s_SP_u__s
mov dword [esp + 8], str.get_windows_version
mov dword [esp + 4], 4
mov dword [esp], 0
call sym._usbi_log
mov eax, ebx
jmp 0x59bec4
mov dword [esp + 0x1c], eax
movzx eax, word [ebp - 0xbc]
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.Windows__s_SP_u._u__s
mov dword [esp + 8], str.get_windows_version
mov dword [esp + 4], 4
mov dword [esp], 0
mov dword [esp + 0x14], eax
call sym._usbi_log
mov eax, ebx
jmp 0x59bec4
cmp dword [ebp - 0x144], 0x4e1f
ja 0x59c33b
mov esi, 0x729b81
mov ebx, 8
jmp 0x59c0d0
mov esi, str.2016
mov ebx, 8
jmp 0x59c0d0
mov ebx, 0xa
mov esi, str.12_or_later
jmp 0x59c0d0
mov esi, 0x729b84
jmp 0x59c19e