Function at 0x40adac
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff4c
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0xb0], edx
mov dword [ebp - 0xb4], edx
mov dword [ebp - 0xac], edx
mov dword [ebp - 0xa0], edx
mov ebx, eax
mov esi, 0x40d7a4
xor eax, eax
push ebp
push 0x40b50f
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 8], 0
mov dword [ebp - 4], 0
mov edx, 0x40b520
mov eax, esi
call fcn.0040604c
lea eax, [ebp - 0x9c]
xor ecx, ecx
mov edx, 0x94
call fcn.0040509c
mov dword [ebp - 0x9c], 0x94
lea eax, [ebp - 0x9c]
push eax
call sub.kernel32.dll_GetVersionExA
cmp dword [ebp - 0x8c], 2
jne 0x40aeb8
mov eax, dword [0x40c308]
mov edx, 0x40b52c
call fcn.00403fe8
call fcn.00402b20
call fcn.00402634
mov eax, ebx
call fcn.004089e0
mov eax, dword [0x40c308]
mov edx, 0x40b580
call fcn.00403fe8
call fcn.00402b20
call fcn.00402634
mov eax, ebx
call fcn.0040a2e4
mov eax, dword [0x40c308]
mov edx, 0x40b5c4
call fcn.00403fe8
call fcn.00402b20
call fcn.00402634
mov eax, ebx
call fcn.004094c0
mov eax, dword [0x40c308]
mov edx, 0x40b614
call fcn.00403fe8
call fcn.00402b20
call fcn.00402634
mov eax, ebx
call fcn.00408eb8
jmp 0x40aed3
xor edi, edi
xor eax, eax
jmp 0x40aec5
mov eax, ebx
call fcn.0040a060
cmp edi, 0xa
jge 0x40aed3
test al, al
jne 0x40aed3
cmp byte [esi], 0
je 0x40aebe
cmp byte [esi], 0
jbe 0x40b34e
xor ebx, ebx
mov edx, 0x40b644
mov eax, esi
mov ecx, 4
call fcn.004060a8
test eax, eax
jne 0x40b33b
add ebx, 5
jmp 0x40b33b
cmp al, 0x2d
jne 0x40af09
inc ebx
jmp 0x40b33b
push 0
push 0xa
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.004043e0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
xor eax, eax
mov al, byte [esi + ebx]
add eax, 0xffffffd0
cmp eax, 0x4a
ja case.0x40af35.48
mov al, byte [eax + 0x40af3c]
jmp dword [eax*4 + 0x40af87]
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 1
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 2
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 3
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 4
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 5
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 6
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 7
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 8
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 9
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0xa
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0xb
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0xc
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0xd
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0xe
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0xf
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0x10
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0x11
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0x12
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0x13
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0x14
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0x15
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0x16
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0x17
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0x18
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0x19
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0x1a
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0x1b
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0x1c
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0x1d
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0x1e
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0x1f
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0x20
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0x21
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0x22
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp case.0x40af35.48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0x23
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
inc ebx
mov al, byte [esi + ebx]
test al, al
je 0x40b34e
cmp ebx, 0x400
jl 0x40aeff
push 0
push 0x5f5e100
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.00404404
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
mov edx, 0x40b64c
mov eax, 0x40dba4
call fcn.00406128
test eax, eax
je 0x40b38f
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0x11e1a300
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp 0x40b408
mov edx, 0x40b654
mov eax, 0x40dba4
call fcn.00406128
test eax, eax
jne 0x40b3b5
mov edx, 0x40b65c
mov eax, 0x40dba4
call fcn.00406128
test eax, eax
je 0x40b3cb
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0x17d78400
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp 0x40b408
mov edx, 0x40b664
mov eax, 0x40dba4
call fcn.00406128
test eax, eax
je 0x40b3f4
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0x1dcd6500
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp 0x40b408
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
add eax, 0x23c34600
adc edx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
lea eax, [ebp - 0xa0]
push eax
mov dword [ebp - 0xa8], esi
mov byte [ebp - 0xa4], 6
lea edx, [ebp - 0xa8]
xor ecx, ecx
mov eax, 0x40b674
call fcn.004065bc
mov edx, dword [ebp - 0xa0]
mov eax, dword [0x40c308]
call fcn.00403fe8
call fcn.00402b20
call fcn.00402634
lea eax, [ebp - 0xac]
push eax
mov dword [ebp - 0xa8], 0x40dba4
mov byte [ebp - 0xa4], 6
lea edx, [ebp - 0xa8]
xor ecx, ecx
mov eax, 0x40b6a8
call fcn.004065bc
mov edx, dword [ebp - 0xac]
mov eax, dword [0x40c308]
call fcn.00403fe8
call fcn.00402b20
call fcn.00402634
lea eax, [ebp - 0xb0]
push eax
push dword [ebp - 4]
push dword [ebp - 8]
lea eax, [ebp - 0xb4]
call fcn.00405ed0
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0xa8], eax
mov byte [ebp - 0xa4], 0xb
lea edx, [ebp - 0xa8]
xor ecx, ecx
mov eax, 0x40b6dc
call fcn.004065bc
mov edx, dword [ebp - 0xb0]
mov eax, dword [0x40c308]
call fcn.00403fe8
call fcn.00402b20
call fcn.00402634
mov ebx, dword [ebp - 8]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40b516
lea eax, [ebp - 0xb4]
mov edx, 3
call fcn.00403c10
lea eax, [ebp - 0xa0]
call fcn.00403bec
ret