Function at 0x10018e9b
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x98
push ebx
push esi
push edi
mov edi, edx
mov esi, ecx
cmp byte [edi], 0x50
jne 0x100194af
cmp byte [edi + 1], 0x4b
jne 0x100194af
xor ebx, ebx
mov dword [ebp - 8], 0xf2c29a3d
xor esi, esi
mov dword [ebp - 0x10], ebx
inc esi
jmp 0x10018edd
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x20], 0xaf1124f0
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x10018ecf
mov byte [ebp - 9], bl
cmp byte [ebp - 9], bl
je 0x10018ef8
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_TranslateMDISysAccel]
mov dword [ebp - 8], ebx
jmp 0x10018fcc
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x14], 0x376fbfcc
mov dword [ebp - 0x14], 0x56e623b2
mov dword [ebp - 0x14], esi
mov dword [ebp - 4], ebx
jmp 0x10018fbd
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x24], 0xfffffff6
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 8]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
mov eax, dword [ebp + eax*4 - 0x20]
cmp edx, eax
mov eax, dword [ebp - 4]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 8]
setne dl
sub edx, dword [ebp + eax*4 - 0x20]
mov eax, dword [ebp - 0x20]
sub eax, edx
neg eax
sbb eax, eax
inc eax
sub eax, 0x3e8c
jne 0x10018f74
mov eax, dword [ebp - 8]
mov edx, ebx
cmp dword [ebp + eax*4 - 0x20], ebx
je 0x10018f76
mov edx, esi
mov eax, dword [ebp - 8]
xor ecx, ecx
cmp eax, edx
setne cl
add ecx, dword [ebp - 0x20]
je 0x10018f8c
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0x20]
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0x20]
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0x20]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], esi
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x20], ebx
jne 0x10018fc6
inc dword [ebp - 4]
cmp dword [ebp - 4], ebx
jle 0x10018f20
mov dword [ebp - 4], esi
inc dword [ebp - 8]
cmp dword [ebp - 8], ebx
jle 0x10018f00
mov al, byte [edi + 2]
lea ecx, [ebp - 0x58]
mov dword [ebp - 4], 2
push esi
mov byte [ebp - 9], al
call fcn.10011bd7
mov dword [ebp - 0x24], 0x97a61eef
mov dword [ebp - 8], ebx
jmp 0x10019008
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x90], 0xeac8b13e
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x10018ff7
mov dword [ebp - 8], ebx
jmp 0x10019023
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x58]
mov dword [eax + ecx*4], 0x29729cf3
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x10019013
mov dword [ebp - 4], 2
cmp dword [ebp - 4], ebx
jl 0x10019045
mov eax, dword [ebp - 4]
cmp dword [ebp + eax*4 - 0x90], ebx
jne 0x10019045
dec dword [ebp - 4]
jns 0x10019034
mov dword [ebp - 4], ebx
jmp 0x1001906b
mov dword [ebp - 0x24], 4
xor edx, edx
mov dword [ebp - 0x18], 3
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x58]
cmp ecx, dword [eax]
setl dl
mov dword [ebp - 0x18], edx
dec dword [ebp - 4]
cmp dword [ebp - 4], 0xffffffec
jge 0x1001904a
lea ecx, [ebp - 0x58]
call fcn.10011c39
mov al, byte [edi + 3]
lea ecx, [ebp - 0x4c]
mov byte [ebp - 0xa], al
movzx eax, byte [ebp - 9]
add eax, 4
push 4
mov dword [ebp - 0x10], eax
call fcn.10011bd7
mov dword [ebp - 4], 0xfffffff9
mov dword [ebp - 0x14], 0x8c7b5c6e
mov dword [ebp - 4], ebx
jmp 0x100190b2
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x4c]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x100190a6
mov dword [ebp - 4], 3
cmp dword [ebp - 4], ebx
jl 0x10019105
mov byte [ebp - 9], bl
cmp byte [ebp - 9], bl
je 0x100190ec
push 0x1149
push ebx
push ebx
push ebx
push ebx
push 0x114b
push 0x1106
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_ScrollWindowEx]
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
dec dword [ebp - 4]
jns 0x100190c4
cmp dword [ebp - 4], ebx
je 0x10019166
mov dword [ebp - 0x14], 0xfffffff8
mov dword [ebp - 8], 0x7e780ca9
cmp dword [ebp - 4], ebx
jne 0x1001912c
mov dword [ebp - 4], 0xee6d058a
mov eax, dword [ebp - 4]
mov dword [ebp - 0x14], eax
mov eax, ebx
cmp dword [ebp - 0x14], ebx
je 0x1001912e
mov eax, esi
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 8], eax
mov dword [ebp - 8], ebx
jmp 0x1001915e
mov byte [ebp - 9], bl
cmp byte [ebp - 9], bl
je 0x1001915b
push 0x9f6
push 0x1002
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_SetClassLongA]
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jle 0x1001913c
jmp 0x10019189
mov byte [ebp - 9], bl
cmp byte [ebp - 9], bl
je 0x10019189
push ebx
push 0x11db
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
lea ecx, [ebp - 0x4c]
call fcn.10011c39
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x84]
add eax, edi
mov dword [ebp - 0x18], 0xffffffff
push 4
mov dword [ebp - 0x24], eax
call fcn.10011bd7
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], ebx
jmp 0x100191c8
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x84]
mov dword [eax + ecx*4], 0xfffffff8
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x100191b5
dec dword [ebp - 0x14]
mov byte [ebp - 9], bl
cmp byte [ebp - 9], bl
je 0x100191e5
push 0x513
push ebx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea ecx, [ebp - 0x84]
call fcn.10011c39
mov dword [ebp - 4], 0xc57e
mov dword [ebp - 0x1c], 0xa62a9695
mov dword [ebp - 8], 0x90635300
mov dword [ebp - 0x1c], 3
mov dword [ebp - 0x14], 9
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x28], ebx
add dword [ebp - 0x10], 0x18
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], 0x8ff43993
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 8]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
setg cl
xor edx, edx
add ecx, dword [ebp - 4]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x14], 0xcb51404f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 8]
cmp ecx, eax
setle dl
mov dword [ebp - 0x78], edx
xor edx, edx
mov dword [ebp - 0x1c], 0xf09a
mov eax, dword [ebp - 0x1c]
test eax, eax
mov eax, dword [ebp - 4]
sets dl
sub edx, 0xcfb6
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setge cl
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 8]
cmp dword [ebp - 0x14], ebx
je 0x100192c6
mov eax, esi
cmp dword [ebp - 0x18], ebx
jne 0x100192c8
mov eax, ebx
mov dword [ebp - 0x1c], eax
movzx eax, byte [ebp - 0xa]
add dword [ebp - 0x10], eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x18], 3
mov dword [ebp - 0x18], 9
mov dword [ebp - 0x1c], 0x17779a7b
mov dword [ebp - 4], ebx
jmp 0x10019300
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x98], 0xffffffff
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jl 0x100192ef
dec dword [ebp - 0x18]
mov byte [ebp - 0xa], bl
cmp byte [ebp - 0xa], bl
je 0x1001932c
push ebx
push 0x264b
push 0x1ea0
push 0xf13
push 0xd6d
call dword [sym.imp.GDI32.dll_CreateBitmap]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x14]
mov edx, dword [eax]
call fcn.10018e8f
mov ecx, dword [ebp - 0x10]
mov edx, eax
add ecx, edi
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp + 8]
push 4
mov dword [ecx], edx
lea ecx, [ebp - 0x40]
mov dword [ebp - 8], 0xd3c891c5
mov dword [ebp - 0x18], 0xfffffffb
mov dword [ebp - 0x18], esi
call fcn.10011bd7
mov dword [ebp - 0x18], 5
mov dword [ebp - 4], ebx
jmp 0x10019380
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x2c], 3
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x10019372
mov dword [ebp - 4], ebx
jmp 0x1001939a
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x40]
mov dword [eax + ecx*4], 0xfffffffa
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x1001938a
mov eax, dword [ebp - 8]
imul eax, dword [ebp - 8]
imul eax, dword [ebp - 8]
add eax, 0xffffe255
mov dword [ebp - 0x2c], eax
cmp eax, dword [ebp - 8]
jle 0x100193bb
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x2c]
xor edx, edx
mov eax, dword [ebp - 8]
cmp ecx, eax
setg dl
cmp edx, dword [ebp - 8]
jge 0x100193d4
cmp dword [ebp - 8], ebx
jne 0x100193d4
mov esi, ebx
mov eax, dword [ebp - 8]
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], esi
mov ecx, dword [ebp - 0x18]
imul ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x40]
mov dword [eax + 0xc], ecx
lea ecx, [ebp - 0x40]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x18], 0xd7d04549
call fcn.10011c39
mov ecx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x14]
shr esi, 2
inc esi
mov eax, dword [ecx]
mov dword [ebp - 0x68], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x64], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0x60], eax
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x10], ebx
jmp 0x1001943f
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x34], 0xfffffff8
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x10019431
mov byte [ebp - 0xa], bl
cmp byte [ebp - 0xa], bl
je 0x10019453
call dword [sym.imp.USER32.dll_GetDoubleClickTime]
mov dword [ebp - 0x34], 0x11
jmp 0x10019482
mov dword [ebp - 0x10], 0xaa9ac70c
mov dword [ebp - 0x10], ebx
jmp 0x10019479
mov byte [ebp - 0xa], bl
cmp byte [ebp - 0xa], bl
je 0x10019476
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x1a
jge 0x10019468
dec dword [ebp - 0x34]
cmp dword [ebp - 0x34], 4
jge 0x1001945c
test esi, esi
je 0x100194f4
mov esi, dword [ebp - 0x1c]
sub edi, esi
mov ecx, dword [esi]
mov edx, ebx
and edx, 3
mov edx, dword [ebp + edx*4 - 0x68]
call fcn.10018e8f
inc ebx
mov dword [esi + edi], eax
lea esi, [esi + 4]
cmp ebx, dword [ebp - 0x14]
jb 0x10019491
jmp 0x100194f4
mov dword [ebp - 0x10], 1
mov dword [ebp - 0x10], 0x1d
cmp dword [ebp - 0x10], 0x13
je 0x100194ef
xor ebx, ebx
cmp dword [ebp - 0x10], ebx
jne 0x100194ef
mov byte [ebp - 0xa], bl
cmp byte [ebp - 0xa], bl
je 0x100194e6
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CreateHalftonePalette]
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x13
jne 0x100194c5
mov eax, dword [ebp + 8]
mov dword [eax], esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret