Function at 0x4fe9e0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push 0xffffffffffffffff
push 0x6820ae
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x118
mov eax, dword [ebp + 8]
cmp eax, 0x1e
push ebx
push esi
push edi
mov esi, ecx
jg 0x4ff246
je 0x4ff211
cmp eax, 0x19
ja case.0x4fea28.2
movzx eax, byte [eax + 0x4ff2bc]
jmp dword [eax*4 + 0x4ff290]
push 0x19d0
call fcn.00401b00
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
mov dword [esp + 0x12c], 0
je case.0x4fea28.2
push 0x4ff2e0
mov ecx, eax
call fcn.004f5700
mov ecx, dword [esp + 0x124]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, esi
call fcn.004f59d0
xor eax, eax
mov ecx, dword [esp + 0x124]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov al, byte [0x76b6b6]
test al, al
je 0x4feb0c
mov al, byte [0x76b6c0]
test al, al
je 0x4feae7
mov eax, dword [0x76b6b8]
mov edx, dword [eax*4 + 0x6d12b0]
mov ecx, dword [0x76b6bc]
movzx edx, byte [edx + ecx]
mov eax, dword [eax*4 + 0x6d12b8]
movzx ecx, byte [eax + ecx]
push 0
push 5
push edx
xor edx, edx
mov dx, word [esi + 0x80]
push ecx
mov ecx, esi
push edx
call fcn.004c6c30
mov byte [0x76b6c0], 0
push 0x3f800000
mov ecx, esi
call fcn.004c6dd0
xor eax, eax
mov ecx, dword [esp + 0x124]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov al, byte [esi + 0xe10]
test al, al
mov eax, 0x720b90
jne 0x4feb20
mov eax, 0x7452e0
lea ecx, [esi + 0x10]
push ecx
push eax
lea ecx, [esp + 0x48]
call fcn.004f5310
lea edx, [esp + 0x40]
push edx
mov ecx, esi
call fcn.004f55a0
lea eax, [esp + 0x40]
push eax
mov ecx, esi
call fcn.004faad0
xor eax, eax
mov ecx, dword [esp + 0x124]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov al, byte [0x76b6b6]
test al, al
je 0x4feb91
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x56
mov ecx, esi
call fcn.004f4620
or eax, 0xffffffff
mov ecx, dword [esp + 0x124]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
mov eax, dword [edi + 4]
test eax, eax
jne case.0x4fea28.2
cmp byte [esi + 9], 9
sete bl
test bl, bl
je 0x4febb3
mov cl, byte [esi + 0xbda]
mov byte [esi + 9], cl
cmp dword [edi], esi
jne 0x4febe0
mov ax, word [esi + 0x80]
cmp word [esi + 0xe48], ax
jne 0x4febcf
inc dword [esi + 0xe4c]
jmp 0x4febe0
mov word [esi + 0xe48], ax
mov dword [esi + 0xe4c], 1
movsx eax, byte [esi + 9]
sub eax, 5
je 0x4febee
dec eax
je 0x4febfc
jmp 0x4fec0a
mov edx, dword [edi + 4]
mov eax, dword [edi]
push edx
push eax
mov ecx, esi
call fcn.00507630
mov ecx, dword [edi + 4]
mov edx, dword [edi]
push ecx
push edx
mov ecx, esi
call fcn.00507770
mov eax, dword [edi + 4]
mov ecx, dword [edi]
push 0
push eax
push ecx
mov ecx, esi
call fcn.005107b0
test bl, bl
je 0x4ff277
mov byte [esi + 9], 9
mov ecx, dword [esp + 0x124]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov al, byte [esi + 0xbd8]
test al, al
jne case.0x4fea28.2
lea edx, [esp + 0x30]
push edx
mov ecx, esi
call fcn.004c7960
movaps xmm0, xmmword [eax]
movaps xmmword [esi + 0xc20], xmm0
movaps xmm0, xmmword [esi + 0xc20]
movaps xmm1, xmmword [esi + 0x40]
lea eax, [esp + 0x10]
addps xmm1, xmm0
push eax
mov ecx, esi
movaps xmmword [esp + 0x14], xmm1
call fcn.00401bc0
mov ecx, esi
call fcn.004c85a0
mov byte [esi + 0xbd8], 1
xor eax, eax
mov ecx, dword [esp + 0x124]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov al, byte [0x76b6b6]
test al, al
jne case.0x4fea28.2
cmp byte [esi + 9], 9
sete bl
test bl, bl
je 0x4fecc8
mov cl, byte [esi + 0xbda]
mov byte [esi + 9], cl
movsx eax, byte [esi + 9]
sub eax, 5
mov edi, dword [ebp + 0xc]
je 0x4fecd9
dec eax
je 0x4feceb
jmp 0x4fecfd
mov edx, dword [edi + 4]
mov eax, dword [edi + 8]
mov ecx, dword [edi]
push edx
push eax
push ecx
mov ecx, esi
call fcn.00502cb0
mov edx, dword [edi + 4]
mov eax, dword [edi + 8]
mov ecx, dword [edi]
push edx
push eax
push ecx
mov ecx, esi
call fcn.00502230
mov edx, dword [edi + 4]
mov eax, dword [edi + 8]
mov ecx, dword [edi]
push edx
push eax
push ecx
mov ecx, esi
call fcn.00513bf0
test bl, bl
je 0x4ff277
mov byte [esi + 9], 9
mov ecx, dword [esp + 0x124]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov al, byte [0x76b6b6]
test al, al
jne case.0x4fea28.2
cmp byte [esi + 9], 9
sete bl
xor edi, edi
test bl, bl
je 0x4fed55
mov dl, byte [esi + 0xbda]
mov byte [esi + 9], dl
mov al, byte [esi + 9]
test al, al
jle 0x4fed92
cmp al, 4
jle 0x4fed85
cmp al, 6
jne 0x4fed92
mov ecx, esi
call fcn.0042ada0
test al, al
jne 0x4fed85
mov ecx, esi
call fcn.0042ad20
test al, al
jne 0x4fed85
mov ecx, esi
call fcn.0042ad40
test al, al
je 0x4fed92
mov eax, dword [ebp + 0xc]
push eax
mov ecx, esi
call fcn.00518ce0
mov edi, eax
test bl, bl
je 0x4fed9a
mov byte [esi + 9], 9
mov eax, edi
mov ecx, dword [esp + 0x124]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp + 0xc]
call fcn.00401e40
mov edi, eax
mov eax, dword [esi + 0x1360]
xor edx, edx
cmp eax, edx
je case.0x4fea28.2
mov al, byte [0x720c38]
mov ebx, 1
test bl, al
jne 0x4fede7
or dword [0x720c38], ebx
mov dword [0x720c34], edx
cmp dword [0x720c30], edi
je 0x4fee0c
mov ecx, dword [0x725b2c]
mov eax, dword [0x6f2234]
mov dword [0x720c34], ecx
mov dword [0x720c30], edi
inc dword [eax + 0xa4]
mov eax, dword [0x720c34]
cmp eax, edx
mov ecx, dword [0x725b2c]
je 0x4fee2a
mov ebx, ecx
sub ebx, eax
cmp ebx, 0x1e
jb 0x4fee2a
mov dword [0x720c30], edx
movzx eax, byte [edi + 8]
sub eax, edx
je 0x4fefe1
dec eax
je 0x4fef1a
dec eax
jne case.0x4fea28.2
cmp word [edi + 0x2c0], 0x1b
jne case.0x4fea28.2
mov esi, dword [esi + 0x1360]
cmp esi, edx
je case.0x4fea28.2
movaps xmm0, xmmword [esi + 0x80]
mulps xmm0, xmm0
movaps xmm1, xmm0
movaps xmm2, xmm0
shufps xmm1, xmm0, 0xaa
shufps xmm2, xmm0, 0x55
addss xmm0, xmm2
addss xmm0, xmm1
movaps xmmword [esp + 0x10], xmm0
fld dword [esp + 0x10]
fcomp dword [0x68c7e8]
fnstsw ax
test ah, 0x41
je 0x4feed0
movaps xmm0, xmmword [edi + 0x80]
mulps xmm0, xmm0
movaps xmm1, xmm0
movaps xmm2, xmm0
shufps xmm1, xmm0, 0xaa
shufps xmm2, xmm0, 0x55
addss xmm0, xmm2
addss xmm0, xmm1
movaps xmmword [esp + 0x10], xmm0
fld dword [esp + 0x10]
fcomp dword [0x68c7e8]
fnstsw ax
test ah, 0x41
jne case.0x4fea28.2
cmp dword [0x6dddc8], edx
jne case.0x4fea28.2
push 0x13
mov ecx, 0x6ddda8
call fcn.00485250
cmp eax, 0x258
jle case.0x4fea28.2
push 0
push 0x13
mov ecx, 0x6ddda8
call fcn.00486ae0
xor eax, eax
mov ecx, dword [esp + 0x124]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [esi + 0x1360]
movaps xmm0, xmmword [eax + 0x80]
mulps xmm0, xmm0
movaps xmm1, xmm0
movaps xmm2, xmm0
shufps xmm1, xmm0, 0xaa
shufps xmm2, xmm0, 0x55
addss xmm0, xmm2
addss xmm0, xmm1
movaps xmmword [esp + 0x10], xmm0
fld dword [esp + 0x10]
fcomp dword [0x690988]
fnstsw ax
test ah, 0x41
jne case.0x4fea28.2
mov eax, dword [esi + 0xbc8]
cmp eax, edx
je 0x4fef6f
sub ecx, eax
cmp ecx, 0x1e
jbe case.0x4fea28.2
call fcn.005f2010
test al, 3
jne 0x4fefbc
cmp word [edi + 0xc], 0
jle 0x4fefbc
mov eax, dword [0x6dddc8]
test eax, eax
jne 0x4fefbc
push 0x15
mov ecx, 0x6ddda8
call fcn.00485250
cmp eax, 0x7fffffff
je 0x4fefae
push 0x15
mov ecx, 0x6ddda8
call fcn.00485250
cmp eax, 0x258
jle 0x4fefbc
push 0
push 0x15
mov ecx, 0x6ddda8
call fcn.00486ae0
mov ecx, dword [0x725b2c]
mov dword [esi + 0xbc8], ecx
xor eax, eax
mov ecx, dword [esp + 0x124]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [esi + 0x1360]
movaps xmm0, xmmword [eax + 0x80]
mulps xmm0, xmm0
movaps xmm1, xmm0
movaps xmm2, xmm0
shufps xmm1, xmm0, 0xaa
shufps xmm2, xmm0, 0x55
addss xmm0, xmm2
addss xmm0, xmm1
movaps xmmword [esp + 0x10], xmm0
fld dword [esp + 0x10]
fcomp dword [0x690988]
fnstsw ax
test ah, 0x41
jne case.0x4fea28.2
mov eax, dword [esi + 0xbc8]
cmp eax, edx
je 0x4ff036
sub ecx, eax
cmp ecx, 0x1e
jbe case.0x4fea28.2
push 0xa
call fcn.00401930
add esp, 4
test eax, eax
jne 0x4fefbc
push 0xf
mov ecx, edi
call fcn.005ef920
test eax, eax
je 0x4fefbc
mov eax, dword [0x6dddc8]
test eax, eax
jne 0x4fefbc
push 0x14
mov ecx, 0x6ddda8
call fcn.00485250
cmp eax, 0x7fffffff
je 0x4ff090
push 0x14
mov ecx, 0x6ddda8
call fcn.00485250
cmp eax, 0x258
jle 0x4fefbc
push 0
push 0x14
jmp 0x4fefb2
mov al, byte [0x76b6b6]
test al, al
jne case.0x4fea28.2
mov edx, dword [ebp + 0xc]
push edx
mov ecx, esi
call fcn.004fc020
mov ecx, dword [esp + 0x124]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea edi, [esi + 0x1010]
mov ebx, 4
mov ecx, edi
call fcn.004c5ba0
add edi, 0xd0
dec ebx
jne 0x4ff0d3
mov eax, dword [esi + 0xc60]
cmp eax, 0xffffffff
je 0x4ff0f7
push eax
call fcn.005fcb30
add esp, 4
push esi
mov ecx, 0x725c34
call fcn.005f1170
call fcn.004ea8a0
mov ecx, dword [esi + 0xe54]
xor ebx, ebx
cmp ecx, eax
jne 0x4ff11c
push ebx
call fcn.004ea800
add esp, 4
mov ecx, dword [esi + 0xd5c]
cmp ecx, ebx
je 0x4ff136
call fcn.005ef6d0
mov ecx, dword [esi + 0xd5c]
call fcn.005f1090
mov ecx, dword [esi + 0xe58]
call fcn.005f1090
mov ecx, dword [esi + 0x220]
cmp ecx, ebx
je 0x4ff161
call fcn.005ef6d0
mov ecx, dword [esi + 0x220]
call fcn.005f1090
mov dword [esi + 0x220], ebx
mov ecx, dword [esi + 0x224]
cmp ecx, ebx
je 0x4ff181
call fcn.005ef6d0
mov ecx, dword [esi + 0x224]
call fcn.005f1090
mov dword [esi + 0x220], ebx
push ebx
mov ecx, 0x744280
call fcn.00401a50
mov eax, dword [esi + 0x135c]
cmp eax, 0xffffffff
je 0x4ff1b3
push eax
call fcn.005fc720
add esp, 4
test eax, eax
je 0x4ff1b3
mov eax, dword [esi + 0x135c]
push eax
call fcn.005fc6e0
add esp, 4
push 0xffffffffffffffff
push esi
call fcn.0063b1e0
mov ecx, dword [0x720b50]
add esp, 8
cmp ecx, ebx
je 0x4ff1e8
mov edi, ecx
call fcn.00480a50
push 0xc1
push str.c:_activision_truecrimeluxengine2LuxDefs.h
push edi
call fcn.00620150
add esp, 0xc
mov dword [0x720b50], ebx
push 1
mov ecx, esi
call fcn.004f5980
mov dword [0x6f2258], ebx
or eax, 0xffffffff
mov ecx, dword [esp + 0x124]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ebx, 1
push ebx
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x9c
mov ecx, esi
call fcn.004f4620
mov byte [esi + 0x1917], bl
xor eax, eax
mov ecx, dword [esp + 0x124]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp eax, 0xe65b
je 0x4ff266
xor eax, eax
mov ecx, dword [esp + 0x124]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
push edx
mov ecx, esi
call fcn.004f4b60
mov ecx, dword [esp + 0x124]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8