Function at 0x102c6e6
Capabilities:
Check os version
Get file version info

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x154
mov eax, dword [0x1039074]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp - 0x138]
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
and edx, 0xffffffc1
or edx, 0x40
mov dword [ebp - 0x138], edx
mov edx, dword [ebp - 0x148]
push ebx
push esi
xor esi, esi
and edx, 0xffffffc1
or edx, 0x40
cmp ecx, esi
push edi
mov dword [ebp - 0x128], ecx
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x12c], esi
mov dword [ebp - 0x130], esi
mov dword [ebp - 0x134], esi
mov dword [ebp - 0x148], edx
mov dword [ebp - 0x13c], esi
mov dword [ebp - 0x140], esi
mov dword [ebp - 0x144], esi
mov dword [ebp - 0x120], esi
mov dword [ebp - 0x124], esi
mov dword [ebp - 0x14c], esi
je 0x102c9b6
cmp eax, esi
je 0x102c9b6
mov dword [eax], esi
call fcn.010326d6
test eax, eax
je 0x102c9cf
lea eax, [ebp - 0x118]
push eax
mov dword [ebp - 0x11c], esi
mov dword [ebp - 0x118], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
mov ebx, 0xffff
mov edi, 0x80070000
jne 0x102c7d5
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x102c7c4
and eax, ebx
or eax, edi
mov esi, eax
test esi, esi
jl 0x102c9cf
mov esi, 0x8000ffff
jmp 0x102c7fd
cmp dword [ebp - 0x108], 2
jne 0x102c7fd
cmp dword [ebp - 0x114], 6
jb 0x102c7fd
cmp dword [ebp - 0x10c], 0x1549
jb 0x102c7fd
mov dword [ebp - 0x11c], 1
test esi, esi
jl 0x102c9cf
cmp dword [ebp - 0x11c], 0
je 0x102c9cf
mov ecx, dword [ebp - 0x128]
push 0
lea eax, [ebp - 0x138]
push eax
call fcn.01032c49
mov esi, eax
test esi, esi
jl 0x102c9cf
mov ecx, dword [ebp - 0x128]
lea eax, [ebp - 0x148]
push eax
call fcn.01032c92
mov esi, eax
test esi, esi
jl 0x102c9cf
lea ecx, [ebp - 0x138]
call fcn.01006e57
push eax
call fcn.0102919f
test eax, eax
je 0x102c9cf
lea ecx, [ebp - 0x148]
call fcn.01006e57
push eax
call fcn.0102919f
test eax, eax
je 0x102c9cf
lea eax, [ebp - 0x124]
push eax
lea ecx, [ebp - 0x138]
call fcn.01006e57
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov dword [ebp - 0x11c], eax
xor eax, eax
cmp dword [ebp - 0x11c], eax
jne 0x102c8c8
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x102c8b4
and eax, ebx
or eax, edi
mov esi, eax
test esi, esi
jl 0x102c9cf
mov esi, 0x8000ffff
jmp 0x102c9cf
push eax
push eax
push eax
push eax
push dword [ebp - 0x11c]
call sub.MFPlat.DLL_MFHeapAlloc
test eax, eax
mov dword [ebp - 0x120], eax
jne 0x102c8eb
mov esi, reloc.OLEAUT32.dll_SysReAllocString
jmp 0x102c9bb
push eax
push dword [ebp - 0x11c]
lea ecx, [ebp - 0x138]
push dword [ebp - 0x124]
call fcn.01006e57
push eax
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
jne 0x102c92f
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x102c91b
and eax, ebx
or eax, edi
mov esi, eax
test esi, esi
jl 0x102c9bb
mov esi, 0x8000ffff
jmp 0x102c9bb
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x154]
push eax
push 0x10013e4
push dword [ebp - 0x120]
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x102c90d
mov ecx, dword [ebp - 0x154]
movzx eax, word [ecx + 0xa]
cdq
shld edx, eax, 0x10
shl eax, 0x10
mov edi, eax
movzx eax, word [ecx + 8]
mov ebx, edx
cdq
or edi, eax
movzx eax, word [ecx + 0xe]
or ebx, edx
shld ebx, edi, 0x10
cdq
shl edi, 0x10
or edi, eax
or ebx, edx
mov eax, edi
mov edi, ebx
shld edi, eax, 0x10
shl eax, 0x10
mov ebx, eax
movzx eax, word [ecx + 0xc]
cdq
or edi, edx
or ebx, eax
cmp edi, 0xb0000
ja 0x102c9bb
jb 0x102c9a8
cmp ebx, 0x155f186c
jae 0x102c9bb
mov eax, dword [ebp - 0x150]
mov dword [eax], 1
jmp 0x102c9bb
mov esi, 0x80070057
cmp dword [ebp - 0x120], 0
je 0x102c9cf
push dword [ebp - 0x120]
call sub.MFPlat.DLL_MFHeapFree
cmp dword [ebp - 0x13c], 0
je 0x102c9e3
lea ecx, [ebp - 0x148]
call fcn.010069f9
cmp dword [ebp - 0x12c], 0
je 0x102c9f7
lea ecx, [ebp - 0x138]
call fcn.010069f9
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.010052b2
leave
ret 8