Function at 0x4c1d90
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x64ffc8
mov eax, dword fs:[0]
push eax
sub esp, 0x68
push ebx
push esi
push edi
mov eax, dword [0x6af168]
xor eax, esp
push eax
lea eax, [esp + 0x78]
mov dword fs:[0], eax
mov ebx, ecx
mov eax, dword [ebx + 0xdc]
test eax, eax
jl 0x4c2125
jne 0x4c1e27
mov eax, dword [ebx]
mov edx, dword [eax + 0x120]
call edx
test al, al
je 0x4c1de4
fld dword [ebx + 0xa4]
jmp 0x4c1dfa
mov eax, dword [ebx]
mov edx, dword [eax + 0x11c]
mov ecx, ebx
call edx
test al, al
je 0x4c1e05
fld dword [ebx + 0xa0]
call fcn.0062a660
mov dword [ebx + 0xe0], eax
mov esi, ebx
call fcn.0043c390
mov ecx, dword [ebx + 0xd54]
test ecx, ecx
je 0x4c1e27
mov eax, dword [ecx]
mov edx, dword [eax + 0x20]
call edx
mov dword [ebx + 0xd54], 0
mov eax, dword [ebx + 0xdc]
cmp eax, 0x1e
jne 0x4c1e59
mov eax, dword [ebx + 0xbe8]
mov ecx, dword [eax + 0x4b4]
mov eax, dword [0x6b8b20]
mov edx, dword [ecx]
mov edx, dword [edx + 0x20]
push eax
call edx
test eax, eax
je 0x4c1ee0
push 1
push 0
jmp 0x4c1ed7
cmp eax, 0x46
jne 0x4c1e6c
mov ecx, dword [ebx + 0xbe8]
mov ecx, dword [ecx + 0x4b4]
jmp 0x4c1e3e
cmp eax, 0xb2
jne 0x4c1e86
mov ecx, dword [ebx + 0xbe8]
mov ecx, dword [ecx + 0x4b4]
mov eax, dword [0x6b87e4]
jmp 0x4c1e43
cmp eax, 0xb3
jne 0x4c1ea0
mov ecx, dword [ebx + 0xbe8]
mov ecx, dword [ecx + 0x4b4]
mov eax, dword [0x6b85a8]
jmp 0x4c1e43
cmp eax, 0xbe
jne 0x4c1ee0
cmp dword [ebx + 0xd54], 0
jne 0x4c1eed
mov ecx, dword [ebx + 0xbe8]
mov ecx, dword [ecx + 0x4b4]
mov edx, dword [ecx]
mov eax, dword [0x6b8b20]
mov edx, dword [edx + 0x20]
push eax
call edx
test eax, eax
mov dword [ebx + 0xd54], eax
je 0x4c1ee0
push 1
push 1
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x1c]
call eax
cmp dword [ebx + 0xd54], 0
je 0x4c1f91
test byte [0x6f48d0], 1
jne 0x4c1f14
or dword [0x6f48d0], 1
mov eax, 0x6f4840
call fcn.00431fc0
push 0x65da10
call fcn.00624e8a
add esp, 4
push str.b0_1_0_6______p____1
lea ecx, [esp + 0x2c]
call fcn.00402130
lea edi, [esp + 0x28]
mov esi, 0x6f4840
mov dword [esp + 0x80], 0
call fcn.00432cd0
mov dword [esp + 0x80], 0xffffffff
cmp dword [esp + 0x40], 0x10
jb 0x4c1f5a
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.0062493b
add esp, 4
fild dword [ebx + 0xdc]
mov edx, dword [ebx + 0xd54]
mov esi, dword [edx]
sub esp, 8
fdiv qword [0x6867f0]
mov eax, 0x6f4840
add esi, 0x14
fstp qword [esp]
call fcn.00432ec0
mov ecx, dword [ebx + 0xd54]
mov eax, dword [esi]
sub esp, 8
fstp qword [esp]
call eax
mov ecx, dword [ebx + 0xdc]
cmp ecx, 0x32
mov dword [esp + 0x24], ecx
jl 0x4c1fb8
cmp ecx, 0x226
jg 0x4c1fb5
fldz
fstp dword [ebx + 0xe4]
jmp 0x4c207b
cmp ecx, 0x32
fld qword [0x665830]
fild dword [esp + 0x24]
jge 0x4c1fd4
fdiv qword [0x687130]
fsubp st(1)
fstp dword [ebx + 0xe4]
jmp 0x4c2002
fcomp dword [0x687918]
fnstsw ax
test ah, 0x41
jne 0x4c2000
mov edx, 0x258
sub edx, ecx
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
fdiv qword [0x687130]
fsubp st(1)
fstp dword [ebx + 0xe4]
jmp 0x4c2002
fstp st(0)
fld dword [ebx + 0xe4]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fld qword [0x687170]
call fcn.00644950
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
mov eax, dword [ebx]
mov edx, dword [eax + 0x120]
fst dword [ebx + 0xe4]
fsubr qword [0x665830]
mov ecx, ebx
fmul qword [0x687910]
fstp dword [esp + 0x24]
call edx
test al, al
je 0x4c205b
fild dword [ebx + 0xe0]
fadd dword [esp + 0x24]
fstp dword [ebx + 0xa4]
jmp 0x4c207b
mov eax, dword [ebx]
mov edx, dword [eax + 0x11c]
mov ecx, ebx
call edx
test al, al
je 0x4c207b
fild dword [ebx + 0xe0]
fadd dword [esp + 0x24]
fstp dword [ebx + 0xa0]
mov eax, dword [ebx + 0xdc]
cmp eax, 0x258
jne 0x4c211c
mov eax, dword [ebx]
mov edx, dword [eax + 0x120]
mov ecx, ebx
call edx
test al, al
je 0x4c20aa
fild dword [ebx + 0xe0]
fstp dword [ebx + 0xa4]
jmp 0x4c20c6
mov eax, dword [ebx]
mov edx, dword [eax + 0x11c]
mov ecx, ebx
call edx
test al, al
je 0x4c20c6
fild dword [ebx + 0xe0]
fstp dword [ebx + 0xa0]
fld1
mov esi, ebx
fstp dword [ebx + 0xe4]
mov dword [ebx + 0xdc], 0xffffffff
call fcn.004c1d60
push 0
push 0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x48], esp
push 0x66f61c
call fcn.00402130
push 0
mov ecx, ebx
call fcn.0043c3e0
mov ecx, dword [ebx + 0xd54]
test ecx, ecx
je 0x4c2125
mov eax, dword [ecx]
mov edx, dword [eax + 0x20]
call edx
mov dword [ebx + 0xd54], 0
jmp 0x4c2125
add eax, 1
mov dword [ebx + 0xdc], eax
mov ecx, ebx
call fcn.0043a130
mov eax, dword [ebx]
mov edx, dword [eax + 0x44]
mov ecx, ebx
call edx
mov eax, dword [ebx]
mov edx, dword [eax + 0x11c]
mov ecx, ebx
call edx
test al, al
mov dword [ebx + 0xd6c], 0x12c
je 0x4c216f
mov dword [ebx + 0xd60], 0x6e
mov dword [ebx + 0xd64], 0xc8
mov dword [ebx + 0xd68], 0x8c
jmp 0x4c218d
mov dword [ebx + 0xd60], 0x24
mov dword [ebx + 0xd64], 0xb4
mov dword [ebx + 0xd68], 0xfa
cmp dword [ebx + 0xdc], 0
fldz
jge 0x4c2282
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + 0xe4]
mov eax, dword [eax + 0xe0]
mov ecx, dword [ebx + 0xd60]
cmp eax, ecx
jl 0x4c2282
mov esi, dword [ebx + 0xd68]
add esi, ecx
cmp eax, esi
jge 0x4c2282
mov eax, dword [ebx + 0xd64]
cmp edx, eax
jl 0x4c2282
mov ecx, dword [ebx + 0xd6c]
add ecx, eax
cmp edx, ecx
jge 0x4c2282
fstp st(0)
fld dword [ebx + 0x8b0]
fadd qword [0x687238]
fld qword [0x686f10]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x4c2208
fstp st(1)
jmp 0x4c220a
fstp st(0)
mov edx, dword [ebx]
fstp dword [ebx + 0x8b0]
mov eax, dword [edx + 0x120]
mov ecx, ebx
call eax
test al, al
je 0x4c2249
push 0
push 0x14
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x48], esp
push 0x66f61c
call fcn.00402130
push 1
mov ecx, ebx
call fcn.0043c3e0
mov byte [ebx + 0x899], 1
jmp 0x4c22aa
mov edx, dword [ebx]
mov eax, dword [edx + 0x11c]
mov ecx, ebx
call eax
test al, al
je 0x4c2279
push 0
push 0x14
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x48], esp
push 0x66f61c
call fcn.00402130
push 0xb
mov ecx, ebx
call fcn.0043c3e0
mov byte [ebx + 0x899], 1
jmp 0x4c22aa
fld dword [ebx + 0x8b0]
fsub qword [0x687238]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x4c229b
fstp st(0)
jmp 0x4c229d
fstp st(1)
fstp dword [ebx + 0x8b0]
mov byte [ebx + 0x899], 0
mov ecx, dword [ebx + 0xbf0]
mov eax, dword [ecx + 0x3c]
mov edx, dword [ecx]
mov edx, dword [edx + 0xa0]
push eax
mov eax, dword [ecx + 0x38]
push eax
push 0x1b
push 0x24c
call edx
mov ecx, dword [ebx + 0xbf4]
mov edx, dword [ecx + 0x3c]
mov eax, dword [ecx]
mov eax, dword [eax + 0xa0]
push edx
mov edx, dword [ecx + 0x38]
push edx
push 0xac
push 0x241
call eax
mov ecx, dword [ebx + 0xbfc]
mov eax, dword [ecx + 0x3c]
mov edx, dword [ecx]
mov edx, dword [edx + 0xa0]
push eax
mov eax, dword [ecx + 0x38]
push eax
push 0x1c8
push 0x24c
call edx
mov ecx, dword [ebx + 0xbf8]
mov edx, dword [ecx + 0x3c]
mov eax, dword [ecx]
mov eax, dword [eax + 0xa0]
push edx
mov edx, dword [ecx + 0x38]
push edx
push 0x13a
push 0x241
call eax
mov esi, ebx
call fcn.004c1d60
mov ecx, dword [ebx + 0xc10]
test ecx, ecx
je 0x4c2363
mov edx, dword [ecx]
mov eax, dword [edx + 0xa4]
push 0x1b
push 0x1b
call eax
mov ecx, dword [ebx + 0xbe8]
mov edx, dword [ebx + 0xc10]
mov al, byte [ecx + 0x830]
mov byte [edx + 0x54], al
mov ecx, dword [ebx + 0xc08]
mov edx, dword [ecx]
mov eax, dword [edx + 0xa4]
push 0x21e
push 7
call eax
mov ecx, dword [ebx + 0xc0c]
mov edx, dword [ecx]
mov eax, dword [edx + 0xa4]
push 0x22a
push 0x6c
call eax
mov ecx, dword [ebx + 0xc04]
mov edx, dword [ecx]
mov eax, dword [edx + 0xa4]
push 0x22a
push 0x108
call eax
mov ecx, dword [ebx + 0xc00]
mov edx, dword [ecx]
mov eax, dword [edx + 0xa4]
push 0x22a
push 0x1a1
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x124]
push 0
mov ecx, ebx
call eax
mov eax, dword [ebx + 0xd48]
test eax, eax
je 0x4c23e6
add eax, 0xffffffff
mov dword [ebx + 0xd48], eax
mov edx, dword [ebx + 0xbe8]
mov eax, edx
call fcn.00550ef0
test al, al
je 0x4c2410
cmp byte [edx + 0x4d2], 0
je 0x4c2410
mov edx, dword [ebx]
mov eax, dword [edx + 0x44]
add dword [ebx + 0xd50], 1
mov ecx, ebx
call eax
mov eax, dword [ebx + 0xd58]
cmp eax, dword [ebx + 0xd5c]
jge 0x4c2471
mov edx, dword [ebx]
add eax, 1
mov dword [ebx + 0xd58], eax
mov eax, dword [edx + 0x44]
mov ecx, ebx
call eax
mov eax, dword [ebx + 0xd58]
cmp eax, 0xa0
jne 0x4c2455
mov ecx, dword [ebx + 0xbe8]
mov edx, dword [ecx]
mov eax, dword [0x6b860c]
mov edx, dword [edx + 0xe0]
push eax
call edx
jmp 0x4c2471
cmp eax, 0xa
jne 0x4c2471
mov ecx, dword [ebx + 0xbe8]
mov eax, dword [ecx]
mov edx, dword [0x6b86c0]
mov eax, dword [eax + 0xe0]
push edx
call eax
mov eax, dword [ebx + 0xbe8]
cmp byte [eax + 0x8f0], 0
je 0x4c24f5
call fcn.0042ac10
test al, al
je 0x4c24f5
mov ecx, dword [ebx + 0xbe8]
mov byte [ecx + 0x8f0], 0
mov edx, dword [ebx + 0xbe8]
mov dword [edx + 0x7f4], 1
mov eax, dword [ebx + 0xbe8]
mov ecx, dword [eax + 0x930]
mov edx, dword [ecx + 0x24]
mov dword [eax + 0x7f8], edx
mov eax, dword [ebx + 0xbe8]
mov ecx, dword [eax + 0x930]
mov edx, dword [ecx + 0x30]
mov dword [eax + 0x7fc], edx
call fcn.004c2f20
mov ecx, dword [ebx + 0xbe8]
push 0
call fcn.0042e320
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [ebx + 0xd70], 0
je 0x4c2509
lea eax, [ebx + 0xd78]
call fcn.004333b0
mov eax, dword [ebx + 0xbe8]
mov edx, dword [eax + 0x930]
test edx, edx
je 0x4c2558
cmp byte [edx + 0x70], 0
jne 0x4c2558
mov eax, ebx
call fcn.004c3100
test al, al
jne 0x4c2558
mov byte [edx + 0x70], 1
mov eax, dword [ebx + 0xbe8]
call fcn.0042d300
test al, al
je 0x4c254d
mov ecx, dword [ebx + 0xbe8]
mov edi, 0xc
call fcn.0042fa40
lea eax, [ebx + 0xe08]
call fcn.004333b0
fldz
fcomp qword [ebx + 0xe90]
fnstsw ax
test ah, 0x44
jnp 0x4c257d
lea esi, [ebx + 0xe08]
call fcn.00433480
test al, al
jne 0x4c257d
mov eax, esi
call fcn.004333b0
mov ecx, dword [ebx + 0x94]
test ecx, ecx
jne 0x4c258b
xor eax, eax
jmp 0x4c2596
mov eax, dword [ebx + 0x98]
sub eax, ecx
sar eax, 2
test eax, eax
sete byte [esp + 0x23]
xor esi, esi
nop
mov ecx, dword [ebx + 0x94]
test ecx, ecx
je 0x4c25e8
mov eax, dword [ebx + 0x98]
sub eax, ecx
sar eax, 2
cmp esi, eax
jae 0x4c25e8
test ecx, ecx
je 0x4c25cc
mov eax, dword [ebx + 0x98]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x4c25d1
call fcn.0062492b
mov ecx, dword [ebx + 0x94]
mov edx, dword [ecx + esi*4]
cmp dword [edx + 0x3c0], 0
jne 0x4c2623
add esi, 1
jmp 0x4c25a0
cmp byte [esp + 0x23], 0
je 0x4c2623
push 0
push 0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x48], esp
push 0
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], 0
push 0x66f61c
mov byte [ecx + 4], 0
call fcn.00402300
push 0
mov ecx, ebx
call fcn.0043c3e0
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret