Function at 0x610c2140
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 8], esi
mov dword [ebp - 4], edi
mov eax, dword [ebx + 0xc8]
test eax, eax
je 0x610c2170
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
mov dword [esp], ebx
mov eax, 0x9c
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 4], eax
call sym.cygwin1.dll__memset
mov dword [ebx], 0x94
mov dword [esp], ebx
call sub.KERNEL32.dll_GetVersionExA
mov eax, dword [ebx + 0x10]
sub esp, 4
cmp eax, 1
je 0x610c2260
cmp eax, 2
je 0x610c2220
mov dword [ebp - 0x14], 0x61135fa0
mov edi, 0x6110ceb8
mov dword [ebx + 0xc8], edi
mov dword [ebp - 0x10], 0
call sub.KERNEL32.dll_GetCurrentProcess
mov dword [esp], eax
lea edx, [ebp - 0x10]
mov dword [esp + 4], edx
call fcn.61101168
sub esp, 8
test eax, eax
jne 0x610c2252
mov eax, dword [ebx + 0xc8]
and byte [eax + 0x16], 0xef
mov eax, dword [ebx + 8]
mov ecx, str._s__d._d
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x14]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
lea eax, [ebx + 0x9c]
mov dword [esp], eax
call sym.___small_sprintf
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 4]
cmp eax, 4
je 0x610c22bb
ja 0x610c2353
cmp eax, 3
jne 0x610c21a9
mov dword [ebp - 0x14], 0x61135fac
mov eax, 0x6110cf60
mov dword [ebx + 0xc8], eax
jmp 0x610c21bb
mov esi, dword [ebp - 0x10]
test esi, esi
setne byte [ebx + 0xc4]
jmp 0x610c21e7
mov eax, dword [ebx + 8]
cmp eax, 0x5a
je 0x610c2342
ja 0x610c21a9
test eax, eax
je 0x610c2375
cmp eax, 0xa
jne 0x610c21a9
mov dword [ebp - 0x14], 0x61135faf
lea edx, [ebx + 0x14]
mov eax, 0x41
mov ah, al
mov al, byte [edx]
cmp al, ah
je 0x610c22a1
inc edx
test al, al
jne 0x610c2294
xor edx, edx
mov eax, edx
test eax, eax
je 0x610c23e4
mov ecx, 0x6110ce70
mov dword [ebx + 0xc8], ecx
jmp 0x610c21bb
mov dword [ebp - 0x14], 0x61135fac
lea eax, [ebx + 0x14]
mov edi, str.Service_Pack_4
mov dword [ebp - 0x18], eax
mov esi, eax
mov ecx, 0xf
cld
repe cmpsb byte [esi], byte es:[edi]
setb al
seta dl
sub dl, al
mov al, dl
test al, 0x80
jne 0x610c23d3
mov esi, dword [ebp - 0x18]
mov eax, 0x6110cf30
mov edi, str.Service_Pack_6
mov dword [ebx + 0xc8], eax
mov ecx, 0xf
repe cmpsb byte [esi], byte es:[edi]
setb al
seta dl
sub dl, al
mov al, dl
test al, 0x80
jne 0x610c21bb
mov dword [ebx], 0x9c
mov dword [esp], ebx
call sub.KERNEL32.dll_GetVersionExA
sub esp, 4
cmp byte [ebx + 0x9a], 1
je 0x610c21bb
mov eax, dword [ebx + 0xc8]
or byte [eax + 0x10], 2
jmp 0x610c21bb
mov dword [ebp - 0x14], 0x61135fd0
mov eax, 0x6110ce40
jmp 0x610c2247
cmp eax, 5
je 0x610c23b2
cmp eax, 6
jne 0x610c21a9
mov dword [ebp - 0x14], 0x61135fac
mov edx, 0x6110ced0
mov dword [ebx + 0xc8], edx
jmp 0x610c2315
mov dword [ebp - 0x14], 0x61135fd3
lea edx, [ebx + 0x14]
mov eax, 0x43
mov ah, al
mov al, byte [edx]
cmp al, ah
je 0x610c2393
inc edx
test al, al
jne 0x610c2386
xor edx, edx
mov eax, edx
test eax, eax
mov edi, 0x6110cea0
jne 0x610c21b5
mov esi, 0x6110ce88
mov dword [ebx + 0xc8], esi
jmp 0x610c21bb
mov dword [ebp - 0x14], 0x61135fac
mov eax, dword [ebx + 8]
test eax, eax
je 0x610c23dd
dec eax
je 0x610c23f4
mov eax, 0x6110cee8
mov dword [ebx + 0xc8], eax
jmp 0x610c2315
mov eax, 0x6110cf48
jmp 0x610c2247
mov eax, 0x6110cf18
jmp 0x610c23c8
mov edx, 0x6110ce58
mov dword [ebx + 0xc8], edx
jmp 0x610c21bb
mov eax, 0x6110cf00
jmp 0x610c23c8