Function at 0x4cc128
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x4ad2e4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xe8
push ebx
push ebp
push esi
push edi
mov ebx, ecx
xor ebp, ebp
lea ecx, [esp + 0x30]
push ebp
mov dword [esp + 0x104], ebp
call fcn.004b3b78
push ebp
lea ecx, [esp + 0x20]
mov byte [esp + 0x104], 1
call fcn.004b3b78
push ebp
lea ecx, [esp + 0xec]
mov byte [esp + 0x104], 2
call fcn.004b3b78
lea ecx, [esp + 0x50]
mov byte [esp + 0x100], 3
call fcn.004af1d8
mov esi, dword [ebx + 0x1ac]
lea ecx, [esp + 0x10]
mov byte [esp + 0x100], 4
call fcn.0050d46e
push ebp
lea ecx, [esp + 0x10c]
mov byte [esp + 0x104], 5
call fcn.0050d492
mov edx, eax
mov al, byte [esp + 0x17]
mov byte [esp + 0x40], al
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x48]
call dword [0x4b4618]
lea ecx, [esp + 0x30]
push 1
lea edx, [esp + 0x44]
push ecx
push edx
lea ecx, [esp + 0x5c]
mov byte [esp + 0x10c], 6
call fcn.004af268
and eax, 0xff
mov byte [esp + 0x100], 5
mov edi, eax
mov eax, dword [esp + 0x44]
cmp eax, ebp
je 0x4cc23f
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4cc236
cmp al, 0xff
je 0x4cc236
dec al
mov byte [ecx], al
jmp 0x4cc23f
push ecx
call fcn.0050d474
add esp, 4
push 0xffffffffffffffff
lea ecx, [esp + 0x10c]
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], ebp
call fcn.0050d48c
cmp edi, ebp
jne 0x4cc310
lea ecx, [esp + 0x10]
mov byte [esp + 0x100], 4
call fcn.0050d468
push 1
lea ecx, [esp + 0xd8]
mov byte [esp + 0x104], 9
call dword [fcn.004b461c]
push 1
lea ecx, [esp + 0xb4]
mov byte [esp + 0x104], 8
call dword [fcn.004b461c]
mov eax, dword [esp + 0xac]
mov byte [esp + 0x100], 7
cmp eax, ebp
je 0x4cc2c8
lea ecx, [esp + 0x80]
call fcn.00494e58
cmp dword [esp + 0xac], ebp
jne 0x4cc2b3
mov eax, dword [esp + 0x7c]
mov byte [esp + 0x100], 3
cmp eax, ebp
je 0x4cc71a
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x7c]
add ecx, 4
dec eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x7c], eax
je 0x4cc2fc
mov eax, ecx
mov ecx, dword [esp + 0x58]
cmp eax, ecx
jne 0x4cc305
lea ecx, [esp + 0x50]
call fcn.004951f8
cmp dword [esp + 0x7c], ebp
jne 0x4cc2dc
jmp 0x4cc71a
lea ecx, [esp + 0x30]
call fcn.004b4318
cmp eax, 6
je 0x4cc3cd
lea ecx, [esp + 0x10]
mov byte [esp + 0x100], 4
call fcn.0050d468
push 1
lea ecx, [esp + 0xd8]
mov byte [esp + 0x104], 0xc
call dword [fcn.004b461c]
push 1
lea ecx, [esp + 0xb4]
mov byte [esp + 0x104], 0xb
call dword [fcn.004b461c]
mov eax, dword [esp + 0xac]
mov byte [esp + 0x100], 0xa
cmp eax, ebp
je 0x4cc389
lea ecx, [esp + 0x80]
call fcn.00494e58
cmp dword [esp + 0xac], ebp
jne 0x4cc374
mov eax, dword [esp + 0x7c]
mov byte [esp + 0x100], 3
cmp eax, ebp
je 0x4cc71a
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x7c]
add ecx, 4
dec eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x7c], eax
je 0x4cc3b9
cmp ecx, dword [esp + 0x58]
jne 0x4cc3c2
lea ecx, [esp + 0x50]
call fcn.004951f8
cmp dword [esp + 0x7c], ebp
jne 0x4cc39d
jmp 0x4cc71a
cmp esi, ebp
je 0x4cc3e2
mov eax, esi
mov esi, dword [esi]
cmp esi, ebp
mov eax, dword [eax + 8]
mov dword [eax + 0x44], ebp
mov dword [eax + 0x48], ebp
jne 0x4cc3d1
lea ecx, [esp + 0x30]
mov dword [esp + 0x18], ebp
call fcn.004b4e58
test eax, eax
jbe 0x4cc545
jmp 0x4cc3fb
xor ebp, ebp
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push edx
call fcn.004b4f08
push eax
lea ecx, [esp + 0x20]
call fcn.004b4218
lea ecx, [esp + 0x1c]
call fcn.004b4318
cmp eax, 7
jne 0x4cc658
push 0x4d0d48
lea ecx, [esp + 0x20]
call fcn.004b5078
push eax
call fcn.00477948
add esp, 4
lea ecx, [esp + 0x1c]
mov esi, eax
push 0x4d0b10
call fcn.004b5078
push eax
call fcn.00477948
mov ebp, eax
mov eax, 0x68db8bad
imul esi
sar edx, 0xc
mov eax, edx
mov ecx, 0x2710
shr eax, 0x1f
add edx, eax
mov eax, esi
mov edi, edx
add esp, 4
cdq
idiv ecx
mov ecx, ebx
push edx
call fcn.004c9598
push 0x4d297c
lea ecx, [esp + 0x20]
mov esi, eax
call fcn.004b5078
push eax
call fcn.00477948
add esp, 4
mov dword [esp + 0x2c], eax
test esi, esi
je 0x4cc529
cmp edi, 1
jne 0x4cc4e5
push 0x4d0d38
lea ecx, [esp + 0x20]
call fcn.004b5078
push eax
call fcn.00477948
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x38]
add esp, 4
test eax, eax
jne 0x4cc4d2
push esi
mov ecx, ebx
mov dword [esi + 0x38], ebp
call fcn.004dcfb8
mov eax, dword [esp + 0x2c]
test eax, eax
mov eax, dword [esi + 0x40]
je 0x4cc4e1
or al, 4
jmp 0x4cc526
and al, 0xfb
jmp 0x4cc526
test edi, edi
jne 0x4cc529
push 0x4d0d38
lea ecx, [esp + 0x20]
call fcn.004b5078
push eax
call fcn.00477948
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x3c]
add esp, 4
test eax, eax
jne 0x4cc515
push esi
mov ecx, ebx
mov dword [esi + 0x3c], ebp
call fcn.004dcfb8
mov eax, dword [esp + 0x2c]
test eax, eax
mov eax, dword [esi + 0x40]
je 0x4cc524
or al, 8
jmp 0x4cc526
and al, 0xf7
mov dword [esi + 0x40], eax
mov esi, dword [esp + 0x18]
lea ecx, [esp + 0x30]
inc esi
mov dword [esp + 0x18], esi
call fcn.004b4e58
cmp esi, eax
jb 0x4cc3f9
xor ebp, ebp
lea ecx, [esp + 0x10]
mov byte [esp + 0x100], 4
call fcn.0050d468
push 1
lea ecx, [esp + 0xd8]
mov byte [esp + 0x104], 0x12
call dword [fcn.004b461c]
push 1
lea ecx, [esp + 0xb4]
mov byte [esp + 0x104], 0x11
call dword [fcn.004b461c]
mov eax, dword [esp + 0xac]
mov byte [esp + 0x100], 0x10
cmp eax, ebp
je 0x4cc5ac
lea ecx, [esp + 0x80]
call fcn.00494e58
cmp dword [esp + 0xac], ebp
jne 0x4cc597
mov eax, dword [esp + 0x7c]
mov byte [esp + 0x100], 3
cmp eax, ebp
je 0x4cc5eb
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x7c]
add ecx, 4
dec eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x7c], eax
je 0x4cc5dc
mov eax, ecx
mov ecx, dword [esp + 0x58]
cmp eax, ecx
jne 0x4cc5e5
lea ecx, [esp + 0x50]
call fcn.004951f8
cmp dword [esp + 0x7c], ebp
jne 0x4cc5bc
lea ecx, [esp + 0xe8]
mov byte [esp + 0x100], 2
call fcn.004b4098
lea ecx, [esp + 0x1c]
mov byte [esp + 0x100], 1
call fcn.004b4098
lea ecx, [esp + 0x30]
mov byte [esp + 0x100], 0
call fcn.004b4098
lea ecx, [esp + 0x108]
mov dword [esp + 0x100], 0xffffffff
call fcn.0050d468
mov eax, 1
mov ecx, dword [esp + 0xf8]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xf4
ret 4
lea ecx, [esp + 0x10]
mov byte [esp + 0x100], 4
call fcn.0050d468
push 1
lea ecx, [esp + 0xd8]
mov byte [esp + 0x104], 0xf
call dword [fcn.004b461c]
push 1
lea ecx, [esp + 0xb4]
mov byte [esp + 0x104], 0xe
call dword [fcn.004b461c]
mov eax, dword [esp + 0xac]
mov byte [esp + 0x100], 0xd
cmp eax, ebp
je 0x4cc6fb
mov eax, dword [esp + 0x8c]
push ebp
mov ecx, eax
add eax, 0x20
mov dword [esp + 0x90], eax
call fcn.004953a8
mov eax, dword [esp + 0xac]
dec eax
mov dword [esp + 0xac], eax
je 0x4cc6e6
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
cmp edx, eax
jne 0x4cc6f2
lea ecx, [esp + 0x80]
call fcn.004951f8
cmp dword [esp + 0xac], ebp
jne 0x4cc6aa
mov eax, dword [esp + 0x7c]
mov byte [esp + 0x100], 3
cmp eax, ebp
je 0x4cc71a
lea ecx, [esp + 0x50]
call fcn.00494dc8
cmp dword [esp + 0x7c], ebp
jne 0x4cc70b
lea ecx, [esp + 0xe8]
mov byte [esp + 0x100], 2
call fcn.004b4098
lea ecx, [esp + 0x1c]
mov byte [esp + 0x100], 1
call fcn.004b4098
lea ecx, [esp + 0x30]
mov byte [esp + 0x100], 0
call fcn.004b4098
lea ecx, [esp + 0x108]
mov dword [esp + 0x100], 0xffffffff
call fcn.0050d468
xor eax, eax
jmp 0x4cc63d