Function at 0x9015738
Capabilities:
Check os version
Get common file path

Disassembly:
push 0x6f8
mov eax, 0x90a26b8
call fcn.09004c60
mov eax, dword [ebp + 8]
mov edi, edx
xor ebx, ebx
mov esi, ecx
mov dword [ebp - 0x6e0], esi
mov dword [ebp - 0x6e4], eax
mov dword [ebp - 0x6dc], edi
cmp edi, ebx
je 0x901579f
push str.DISPLAY
push edi
call sub.MSVCR100.dll_strcmp
pop ecx
pop ecx
test eax, eax
je 0x9015799
push str.display
push edi
call sub.MSVCR100.dll_strcmp
pop ecx
pop ecx
test eax, eax
je 0x9015799
push str.Display
push edi
call sub.MSVCR100.dll_strcmp
pop ecx
pop ecx
test eax, eax
jne 0x901579f
mov dword [ebp - 0x6dc], ebx
lea eax, [ebp - 0x4d4]
push eax
mov dword [ebp - 0x4d4], 0x94
call dword [sym.imp.kernel32.dll_GetVersionExA]
test eax, eax
jne 0x90157c2
xor al, al
call fcn.09005591
ret
cmp dword [ebp - 0x4c4], 2
jne 0x90157d8
cmp dword [ebp - 0x4d0], 5
jae 0x9015ace
mov ecx, esi
call fcn.09029bb6
test al, al
je 0x90157ba
cmp dword [esi + 0xf0], ebx
jne 0x90157f4
mov ecx, esi
call fcn.090421cc
jmp 0x90157ba
mov edi, 0x104
push edi
lea eax, [ebp - 0x320]
push eax
mov byte [ebp - 0x6d6], bl
mov byte [ebp - 0x6d5], bl
mov byte [ebp - 0x6d7], bl
call dword [sym.imp.kernel32.dll_GetSystemDirectoryA]
cmp eax, ebx
je 0x901595b
cmp eax, edi
je 0x901595b
push str.user32.dll
lea eax, [ebp - 0x320]
push edi
push eax
call fcn.09029bb6
add esp, 0xc
test eax, eax
jne 0x901595b
lea eax, [ebp - 0x320]
push eax
call dword [sym.imp.kernel32.dll_LoadLibraryA]
mov dword [ebp - 0x700], eax
cmp eax, ebx
je 0x901595b
push 0x90b6d70
push eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
mov dword [ebp - 0x6e8], eax
cmp eax, ebx
je 0x9015941
mov esi, 0x1a8
push esi
lea eax, [ebp - 0x67c]
push ebx
push eax
mov byte [ebp - 0x6d6], 1
call sub.MSVCR100.dll_memset
add esp, 0xc
push ebx
lea eax, [ebp - 0x67c]
push eax
mov dword [ebp - 0x67c], esi
mov dword [ebp - 0x6f0], ebx
push ebx
jmp 0x90158fc
cmp dword [ebp - 0x6dc], ebx
jne 0x90158c4
mov eax, dword [ebp - 0x5d8]
shr eax, 2
and al, 1
jmp 0x90158de
push dword [ebp - 0x6dc]
lea eax, [ebp - 0x678]
push eax
call sub.MSVCR100.dll_strcmp
neg eax
pop ecx
sbb al, al
pop ecx
inc al
mov byte [ebp - 0x6d5], al
cmp al, bl
jne 0x9015909
inc dword [ebp - 0x6f0]
push ebx
lea eax, [ebp - 0x67c]
push eax
push dword [ebp - 0x6f0]
push ebx
call dword [ebp - 0x6e8]
test eax, eax
jne 0x90158af
jmp 0x9015941
push esi
lea eax, [ebp - 0x1bc]
push ebx
push eax
call sub.MSVCR100.dll_memset
add esp, 0xc
push ebx
lea eax, [ebp - 0x1bc]
push eax
push ebx
lea eax, [ebp - 0x678]
push eax
mov dword [ebp - 0x1bc], esi
call dword [ebp - 0x6e8]
test eax, eax
je 0x9015941
mov byte [ebp - 0x6d7], 1
push dword [ebp - 0x700]
call dword [sym.imp.kernel32.dll_FreeLibrary]
cmp byte [ebp - 0x6d7], bl
jne 0x90159ac
mov esi, dword [ebp - 0x6e0]
mov ecx, esi
call fcn.090421cc
cmp byte [ebp - 0x6d6], bl
je 0x9015995
cmp byte [ebp - 0x6d5], bl
jne 0x9015995
cmp dword [ebp - 0x6dc], ebx
je 0x9015995
mov dword [ebp - 0x6f8], 0x7061726d
push 0x90d0748
lea eax, [ebp - 0x6f8]
push eax
call sub.MSVCR100.dll__CxxThrowException
mov dword [ebp - 0x704], 0x67656e20
push 0x90d0748
lea eax, [ebp - 0x704]
jmp 0x901598f
push ebx
push ebx
push dword [ebp - 0x6e4]
push dword [ebp - 0x6e0]
call fcn.09029bb6
push 0x58
pop esi
push esi
mov byte [ebp - 0x6d5], al
lea eax, [ebp - 0x6d4]
push ebx
push eax
call sub.MSVCR100.dll_memset
add esp, 0x1c
lea eax, [ebp - 0x114]
mov dword [ebp - 0x6d4], esi
mov dword [ebp - 0x6d0], 0x300
mov dword [ebp - 0x6cc], 0x21
mov dword [ebp - 0x6c8], eax
mov dword [ebp - 0x6b0], 0x6d6e7472
mov dword [ebp - 0x6ec], edi
mov dword [ebp - 0x6f4], ebx
mov byte [ebp - 0x6d6], bl
cmp byte [ebp - 0x6d5], bl
je 0x9015ac6
mov eax, dword [ebp - 0x6e0]
mov eax, dword [eax + 0xf0]
lea ecx, [ebp - 0x6f4]
push ecx
lea ecx, [ebp - 0x6ec]
push ecx
lea ecx, [ebp - 0x424]
push ecx
lea ecx, [ebp - 0x6d4]
push ecx
push ebx
mov dword [ebp - 4], ebx
call eax
cmp eax, ebx
setne byte [ebp - 0x6d5]
or dword [ebp - 4], 0xffffffff
jmp 0x9015a7e
cmp byte [ebp - 0x6d5], bl
je 0x9015ac6
cmp dword [ebp - 0x6f4], 1
jb 0x9015ac6
mov ecx, dword [ebp - 0x6e4]
lea eax, [ebp - 0x424]
push eax
mov byte [ebp - 0x6d5], 1
call fcn.09055e51
mov ecx, dword [ebp - 0x6e0]
call fcn.090421cc
cmp byte [ebp - 0x6d6], bl
jne 0x9015ace
mov al, byte [ebp - 0x6d5]
jmp 0x90157bc
mov byte [ebp - 0x6d5], bl
jmp 0x9015aa8
mov eax, dword [ebp - 0x6dc]
cmp eax, ebx
jne 0x9015add
mov eax, str.DISPLAY
push ebx
push ebx
push ebx
push eax
call dword [sym.imp.GDI32.dll_CreateDCA]
mov esi, eax
cmp esi, ebx
je 0x9015b69
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x6ec]
push eax
push esi
mov dword [ebp - 0x6ec], 0x103
call dword [sym.imp.GDI32.dll_GetICMProfileW]
test eax, eax
push esi
setne byte [ebp - 0x6d6]
call dword [sym.imp.GDI32.dll_DeleteDC]
cmp byte [ebp - 0x6d6], bl
je 0x9015b5e
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x440]
call fcn.09015b83
mov ecx, dword [ebp - 0x6e4]
lea eax, [ebp - 0x440]
push eax
mov dword [ebp - 4], 2
call fcn.09029bb6
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x440]
call fcn.090167a9
mov al, byte [ebp - 0x6d6]
jmp 0x90157bc
mov dword [ebp - 0x6fc], 0x7061726d
push 0x90d0748
lea eax, [ebp - 0x6fc]
jmp 0x901598f