Function at 0x610c1d50
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 0x610c1d80
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 0x610c1e70
cmp eax, 2
je 0x610c1e30
mov dword [ebp - 0x14], 0x61133f00
mov edi, 0x6110ae84
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.610ff168
sub esp, 8
test eax, eax
jne 0x610c1e62
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 0x610c1ecb
ja 0x610c1f63
cmp eax, 3
jne 0x610c1db9
mov dword [ebp - 0x14], 0x61133f0c
mov eax, 0x6110af2c
mov dword [ebx + 0xc8], eax
jmp 0x610c1dcb
mov esi, dword [ebp - 0x10]
test esi, esi
setne byte [ebx + 0xc4]
jmp 0x610c1df7
mov eax, dword [ebx + 8]
cmp eax, 0x5a
je 0x610c1f52
ja 0x610c1db9
test eax, eax
je 0x610c1f85
cmp eax, 0xa
jne 0x610c1db9
mov dword [ebp - 0x14], 0x61133f0f
lea edx, [ebx + 0x14]
mov eax, 0x41
mov ah, al
mov al, byte [edx]
cmp al, ah
je 0x610c1eb1
inc edx
test al, al
jne 0x610c1ea4
xor edx, edx
mov eax, edx
test eax, eax
je 0x610c1ff4
mov ecx, 0x6110ae3c
mov dword [ebx + 0xc8], ecx
jmp 0x610c1dcb
mov dword [ebp - 0x14], 0x61133f0c
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 0x610c1fe3
mov esi, dword [ebp - 0x18]
mov eax, 0x6110aefc
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 0x610c1dcb
mov dword [ebx], 0x9c
mov dword [esp], ebx
call sub.KERNEL32.dll_GetVersionExA
sub esp, 4
cmp byte [ebx + 0x9a], 1
je 0x610c1dcb
mov eax, dword [ebx + 0xc8]
or byte [eax + 0x10], 2
jmp 0x610c1dcb
mov dword [ebp - 0x14], 0x61133f30
mov eax, 0x6110ae0c
jmp 0x610c1e57
cmp eax, 5
je 0x610c1fc2
cmp eax, 6
jne 0x610c1db9
mov dword [ebp - 0x14], 0x61133f0c
mov edx, 0x6110ae9c
mov dword [ebx + 0xc8], edx
jmp 0x610c1f25
mov dword [ebp - 0x14], 0x61133f33
lea edx, [ebx + 0x14]
mov eax, 0x43
mov ah, al
mov al, byte [edx]
cmp al, ah
je 0x610c1fa3
inc edx
test al, al
jne 0x610c1f96
xor edx, edx
mov eax, edx
test eax, eax
mov edi, 0x6110ae6c
jne 0x610c1dc5
mov esi, 0x6110ae54
mov dword [ebx + 0xc8], esi
jmp 0x610c1dcb
mov dword [ebp - 0x14], 0x61133f0c
mov eax, dword [ebx + 8]
test eax, eax
je 0x610c1fed
dec eax
je 0x610c2004
mov eax, 0x6110aeb4
mov dword [ebx + 0xc8], eax
jmp 0x610c1f25
mov eax, 0x6110af14
jmp 0x610c1e57
mov eax, 0x6110aee4
jmp 0x610c1fd8
mov edx, 0x6110ae24
mov dword [ebx + 0xc8], edx
jmp 0x610c1dcb
mov eax, 0x6110aecc
jmp 0x610c1fd8