Function at 0xa68720
Capabilities:
Check os version

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0xa8f8e6
push eax
mov dword fs:[0], esp
sub esp, 0x420
mov ecx, 0x36
xor eax, eax
push ebx
push ebp
mov ebp, dword [esp + 0x438]
push esi
push edi
mov edi, ebp
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x448]
cmp eax, 0x20
jne 0xa68768
mov dword [ebp + 0x2c], 0xffffffff
xor edi, edi
jmp 0xa6876d
xor edi, edi
mov dword [ebp + 0x2c], edi
mov dword [ebp + 0x30], eax
call dword [sym.imp.KERNEL32.dll_GetConsoleCP]
mov ecx, dword [esp + 0x450]
mov ebx, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push edi
push edi
push edi
push edi
push 0xffffffffffffffff
mov dword [ebp + 0x44], eax
mov eax, dword [esp + 0x474]
push ecx
push edi
push 1
mov dword [ebp + 0x48], eax
call ebx
add eax, 2
lea ecx, [esp + 0x10]
mov word [ebp + 0x80], ax
and eax, 0xffff
add eax, 3
and al, 0xfc
mov esi, eax
call fcn.00a155c0
mov eax, dword [esp + 0x44c]
lea edx, [esp + 0x10]
push edx
push eax
mov dword [esp + 0x440], edi
call fcn.00a68c90
add esp, 8
test eax, eax
je 0xa68989
mov ecx, dword [esp + 0x18]
push edi
push edi
push edi
push edi
push 0xffffffffffffffff
push ecx
push edi
push 1
call ebx
mov word [ebp + 0x82], ax
and eax, 0xffff
add eax, 3
lea ecx, [esp + 0x220]
and al, 0xfc
mov dword [ebp + 0x54], edi
add esi, eax
mov word [ebp + 0x84], di
call fcn.00a155c0
mov eax, dword [esp + 0x454]
lea edx, [esp + 0x220]
push edx
push eax
mov byte [esp + 0x440], 1
call fcn.00a68c90
add esp, 8
test eax, eax
je 0xa68975
mov ecx, dword [esp + 0x228]
push edi
push edi
push edi
push edi
push 0xffffffffffffffff
push ecx
push edi
push 1
call ebx
mov edx, dword [esp + 0x458]
xor ecx, ecx
mov word [ebp + 0x86], ax
and eax, 0xffff
mov cx, word [edx + 2]
add eax, 3
mov dword [ebp + 0x60], ecx
add ecx, 3
and ecx, 0xfffffffc
and al, 0xfc
add ecx, esi
mov esi, 4
lea edi, [ecx + eax]
mov eax, dword [esp + 0x464]
test eax, eax
je 0xa68931
mov ecx, dword [eax + 8]
add edi, 0x44
test ecx, ecx
mov esi, 5
je 0xa688cb
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push ecx
push 0
push 0
call ebx
mov dword [ebp + 0x6c], eax
add eax, 3
and al, 0xfc
mov esi, 6
add edi, eax
mov eax, dword [esp + 0x464]
jmp 0xa688d2
mov dword [ebp + 0x6c], 0
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0xa688fe
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push ecx
push 0
push 0
call ebx
mov dword [ebp + 0x74], eax
add eax, 3
and al, 0xfc
add edi, eax
mov eax, dword [esp + 0x464]
inc esi
jmp 0xa68905
mov dword [ebp + 0x74], 0
mov eax, dword [eax + 4]
test eax, eax
je 0xa6892a
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push eax
push 0
push 0
call ebx
mov dword [ebp + 0x7c], eax
add eax, 3
and al, 0xfc
add edi, eax
inc esi
jmp 0xa68931
mov dword [ebp + 0x7c], 0
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp al, 5
push edi
jb 0xa6894e
push esi
call dword [0xaf56f8]
mov ecx, dword [esp + 0x444]
mov dword [ecx], eax
jmp 0xa68960
push 0
push esi
call dword [0xaf56f8]
mov edx, dword [esp + 0x444]
mov dword [edx], eax
mov eax, dword [esp + 0x444]
mov eax, dword [eax]
test eax, eax
jne 0xa689a4
push 8
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea ecx, [esp + 0x220]
mov byte [esp + 0x438], 0
call fcn.00a155e0
lea ecx, [esp + 0x10]
mov dword [esp + 0x438], 0xffffffff
call fcn.00a155e0
xor eax, eax
jmp 0xa68c71
xor ecx, ecx
lea edi, [ebp + 0x4c]
mov cx, word [ebp + 0x80]
push edi
add ecx, 3
and ecx, 0xfffffffc
push ecx
push eax
call dword [0xaf5724]
mov eax, dword [edi]
mov ecx, dword [esp + 0x450]
xor edx, edx
push 0
mov dx, word [ebp + 0x80]
push 0
push edx
push eax
push 0xffffffffffffffff
push ecx
push 0
push 1
call ebx
mov edi, 0xaaf4f0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, dword [ebp + 0x4c]
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ax, word [ebp + 0x82]
mov esi, dword [esp + 0x444]
add eax, 3
lea edi, [ebp + 0x50]
mov ecx, dword [esi]
and al, 0xfc
push edi
push eax
push ecx
call dword [0xaf5724]
mov eax, dword [edi]
mov ecx, dword [esp + 0x18]
xor edx, edx
push 0
mov dx, word [ebp + 0x82]
push 0
push edx
push eax
push 0xffffffffffffffff
push ecx
push 0
push 1
call ebx
mov eax, dword [esi]
xor edx, edx
mov dx, word [ebp + 0x86]
lea edi, [ebp + 0x58]
add edx, 3
push edi
and edx, 0xfffffffc
push edx
push eax
call dword [0xaf5724]
mov edx, dword [edi]
xor ecx, ecx
mov cx, word [ebp + 0x86]
push 0
push 0
push ecx
push edx
push 0xffffffffffffffff
mov eax, dword [esp + 0x23c]
push eax
push 0
push 0
call ebx
mov ecx, dword [ebp + 0x60]
mov edx, dword [esi]
add ecx, 3
lea edi, [ebp + 0x5c]
and ecx, 0xfffffffc
push edi
push ecx
push edx
call dword [0xaf5724]
mov ecx, dword [ebp + 0x60]
mov eax, dword [esp + 0x458]
mov edi, dword [edi]
mov edx, ecx
mov esi, dword [eax + 4]
xor eax, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x464]
cmp esi, eax
je 0xa68be7
mov eax, dword [esp + 0x444]
lea edi, [ebp + 0x64]
push edi
push 0x44
mov ecx, dword [eax]
push ecx
call dword [0xaf5724]
mov edi, dword [edi]
mov ecx, 0x11
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [ebp + 0x64]
lea eax, [esi + 0x10]
xor ecx, ecx
add edi, 0x10
mov cx, word [esi + 0x32]
mov esi, dword [eax]
sub ecx, esi
mov esi, eax
mov edx, ecx
xor eax, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x464]
cmp dword [esi + 8], eax
je 0xa68b57
mov eax, dword [ebp + 0x6c]
mov ecx, dword [esp + 0x444]
add eax, 3
lea edi, [ebp + 0x68]
mov edx, dword [ecx]
and al, 0xfc
push edi
push eax
push edx
call dword [0xaf5724]
mov eax, dword [ebp + 0x6c]
mov ecx, dword [edi]
mov edx, dword [esi + 8]
push 0
push 0
push eax
push ecx
push 0xffffffffffffffff
push edx
push 0
push 0
call ebx
xor eax, eax
jmp 0xa68b5d
mov dword [ebp + 0x68], eax
mov dword [ebp + 0x6c], eax
cmp dword [esi + 0xc], eax
je 0xa68b9a
mov eax, dword [ebp + 0x74]
mov ecx, dword [esp + 0x444]
add eax, 3
lea edi, [ebp + 0x70]
mov edx, dword [ecx]
and al, 0xfc
push edi
push eax
push edx
call dword [0xaf5724]
mov eax, dword [ebp + 0x74]
mov ecx, dword [edi]
mov edx, dword [esi + 0xc]
push 0
push 0
push eax
push ecx
push 0xffffffffffffffff
push edx
push 0
push 1
call ebx
xor eax, eax
jmp 0xa68ba0
mov dword [ebp + 0x70], eax
mov dword [ebp + 0x74], eax
cmp dword [esi + 4], eax
je 0xa68bdd
mov eax, dword [ebp + 0x7c]
mov ecx, dword [esp + 0x444]
add eax, 3
lea edi, [ebp + 0x78]
mov edx, dword [ecx]
and al, 0xfc
push edi
push eax
push edx
call dword [0xaf5724]
mov eax, dword [ebp + 0x7c]
mov ecx, dword [edi]
mov edx, dword [esi + 4]
push 0
push 0
push eax
push ecx
push 0xffffffffffffffff
push edx
push 0
push 0
call ebx
xor eax, eax
jmp 0xa68bfc
mov dword [ebp + 0x78], eax
mov dword [ebp + 0x7c], eax
xor eax, eax
jmp 0xa68bfc
mov dword [ebp + 0x64], eax
mov dword [ebp + 0x68], eax
mov dword [ebp + 0x6c], eax
mov dword [ebp + 0x70], eax
mov dword [ebp + 0x74], eax
mov dword [ebp + 0x78], eax
mov dword [ebp + 0x7c], eax
mov ecx, dword [esp + 0x454]
mov cx, word [ecx]
cmp cx, 0x41
jb 0xa68c1e
cmp cx, 0x5a
ja 0xa68c1e
add ecx, 0xffffffbf
mov word [ebp + 0x88], cx
jmp 0xa68c3d
cmp cx, 0x61
jb 0xa68c36
cmp cx, 0x7a
ja 0xa68c36
add ecx, 0xffffff9f
mov word [ebp + 0x88], cx
jmp 0xa68c3d
mov word [ebp + 0x88], ax
lea ecx, [esp + 0x220]
mov word [ebp + 0x8a], ax
mov byte [esp + 0x438], 0
call fcn.00a155e0
lea ecx, [esp + 0x10]
mov dword [esp + 0x438], 0xffffffff
call fcn.00a155e0
mov eax, 1
mov ecx, dword [esp + 0x430]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x42c
ret