Function at 0x901f094
Capabilities:
Get common file path

Disassembly:
push 0x66c
mov eax, 0x90a181f
call fcn.09005525
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x644], eax
mov eax, 0x90b83f0
mov dword [ebp - 0x650], edi
mov dword [ebp - 0x65c], esi
test esi, esi
je 0x901f102
push eax
push esi
call sub.MSVCR120.dll_strcmp
pop ecx
pop ecx
test eax, eax
je 0x901f0f6
push str.display
push esi
call sub.MSVCR120.dll_strcmp
pop ecx
pop ecx
test eax, eax
je 0x901f0f6
push str.Display
push esi
call sub.MSVCR120.dll_strcmp
pop ecx
pop ecx
test eax, eax
jne 0x901f102
xor ebx, ebx
mov esi, ebx
mov dword [ebp - 0x65c], esi
jmp 0x901f104
xor ebx, ebx
push ebx
push ebx
push 5
call fcn.0906767e
add esp, 0xc
test al, al
jne 0x901f444
mov ecx, edi
call fcn.0906767e
test al, al
jne 0x901f12b
xor al, al
call fcn.09005ef4
ret
cmp dword [edi + 0x108], 0
jne 0x901f13d
mov ecx, edi
call fcn.090125e6
jmp 0x901f123
push 0x104
lea eax, [ebp - 0x320]
mov byte [ebp - 0x63d], bl
push eax
mov byte [ebp - 0x64c], bl
mov byte [ebp - 0x658], bl
call dword [sym.imp.kernel32.dll_GetSystemDirectoryA]
test eax, eax
je 0x901f3f5
mov ecx, 0x104
cmp eax, ecx
je 0x901f3f5
push str.user32.dll
push ecx
lea eax, [ebp - 0x320]
push eax
call fcn.0906767e
add esp, 0xc
test eax, eax
jne 0x901f3f5
lea eax, [ebp - 0x320]
push eax
call dword [sym.imp.kernel32.dll_LoadLibraryA]
mov dword [ebp - 0x668], eax
test eax, eax
je 0x901f3f5
push str.EnumDisplayDevicesA
push eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
mov dword [ebp - 0x654], eax
test eax, eax
je 0x901f2ab
xor eax, eax
inc eax
push 0x1a8
mov dword [ebp - 0x648], eax
mov byte [ebp - 0x63d], al
lea eax, [ebp - 0x5e4]
push ebx
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
mov dword [ebp - 0x5e4], 0x1a8
lea eax, [ebp - 0x5e4]
mov dword [ebp - 0x664], ebx
push ebx
push eax
push ebx
jmp 0x901f250
test esi, esi
jne 0x901f21b
mov eax, dword [ebp - 0x540]
shr eax, 2
and eax, 0xffffff01
jmp 0x901f230
lea eax, [ebp - 0x5e0]
push esi
push eax
call sub.MSVCR120.dll_strcmp
neg eax
pop ecx
sbb al, al
pop ecx
inc al
mov dword [ebp - 0x64c], eax
test al, al
jne 0x901f25d
mov eax, dword [ebp - 0x664]
lea ecx, [ebp - 0x5e4]
push ebx
inc eax
push ecx
mov dword [ebp - 0x664], eax
push eax
push ebx
call dword [ebp - 0x654]
test eax, eax
jne 0x901f207
jmp 0x901f2b4
push 0x1a8
lea eax, [ebp - 0x1bc]
push ebx
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
mov dword [ebp - 0x1bc], 0x1a8
lea eax, [ebp - 0x1bc]
push ebx
push eax
push ebx
lea eax, [ebp - 0x5e0]
push eax
call dword [ebp - 0x654]
mov ecx, dword [ebp - 0x658]
test eax, eax
push 1
movzx ecx, cl
pop eax
cmovne ecx, eax
mov dword [ebp - 0x658], ecx
jmp 0x901f2b4
xor eax, eax
inc eax
mov dword [ebp - 0x648], eax
push dword [ebp - 0x668]
call dword [sym.imp.kernel32.dll_FreeLibrary]
cmp byte [ebp - 0x658], 0
je 0x901f3f5
push ebx
push ebx
push dword [ebp - 0x644]
push edi
call fcn.0906767e
push 0x58
mov bl, al
lea eax, [ebp - 0x63c]
push 0
push eax
call sub.MSVCR120.dll_memset
and dword [ebp - 0x660], 0
lea eax, [ebp - 0x114]
add esp, 0x1c
mov dword [ebp - 0x63c], 0x58
mov dword [ebp - 0x638], 0x300
mov dword [ebp - 0x634], 0x21
mov dword [ebp - 0x630], eax
mov dword [ebp - 0x618], 0x6d6e7472
mov dword [ebp - 0x670], 0x104
mov byte [ebp - 0x63d], 0
test bl, bl
je 0x901f3d2
mov eax, dword [edi + 0x108]
lea ecx, [ebp - 0x660]
push ecx
lea ecx, [ebp - 0x670]
xor ebx, ebx
push ecx
lea ecx, [ebp - 0x424]
mov dword [ebp - 4], ebx
push ecx
lea ecx, [ebp - 0x63c]
push ecx
push ebx
call eax
test eax, eax
setne dl
or dword [ebp - 4], 0xffffffff
xor eax, eax
inc eax
jmp 0x901f3b2
mov ecx, dword [ebp - 0x644]
test dl, dl
je 0x901f3d4
cmp dword [ebp - 0x660], eax
jb 0x901f3d4
lea eax, [ebp - 0x424]
push eax
call fcn.0900dbd9
jmp 0x901f3da
xor ebx, ebx
mov byte [ebp - 0x648], bl
mov ecx, edi
call fcn.090125e6
cmp byte [ebp - 0x63d], 0
jne 0x901f444
mov eax, dword [ebp - 0x648]
jmp 0x901f125
mov ecx, edi
call fcn.090125e6
cmp byte [ebp - 0x63d], 0
je 0x901f42d
cmp byte [ebp - 0x64c], 0
jne 0x901f42d
test esi, esi
je 0x901f42d
mov dword [ebp - 0x678], 0x7061726d
lea eax, [ebp - 0x678]
push 0x90d4978
push eax
call sub.MSVCR120.dll__CxxThrowException
mov dword [ebp - 0x674], 0x67656e20
lea eax, [ebp - 0x674]
push 0x90d4978
jmp 0x901f427
push ebx
push ebx
test esi, esi
mov eax, 0x90b83f0
push ebx
cmovne eax, esi
push eax
call dword [sym.imp.GDI32.dll_CreateDCA]
mov esi, eax
test esi, esi
je 0x901f4ce
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x650], 0x103
push eax
lea eax, [ebp - 0x650]
push eax
push esi
call dword [sym.imp.GDI32.dll_GetICMProfileW]
test eax, eax
push esi
setne bl
call dword [sym.imp.GDI32.dll_DeleteDC]
test bl, bl
je 0x901f4c7
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x43c]
call fcn.0900bde7
mov ecx, dword [ebp - 0x644]
lea eax, [ebp - 0x43c]
push eax
mov dword [ebp - 4], 2
call fcn.0906767e
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x43c]
call fcn.0900e42b
mov al, bl
jmp 0x901f125
mov dword [ebp - 0x66c], 0x7061726d
lea eax, [ebp - 0x66c]
push 0x90d4978
jmp 0x901f427