Function at 0x11151000
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x214
mov eax, dword [0x11279148]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x214], eax
mov eax, dword [0x1127f200]
push esi
push edi
mov edi, dword [ebp + 8]
test eax, eax
jne 0x11151133
lea ecx, [ebp - 0x20c]
push 0x104
push ecx
call fcn.110fe3d0
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea edx, [ebp - 0x20c]
push 0x5c
push edx
mov esi, str.PCImsg.dll
call dword [sym.imp.MSVCR100.dll_wcsrchr]
add esp, 8
sub eax, esi
movzx ecx, word [esi]
mov word [eax + esi], cx
add esi, 2
test cx, cx
jne 0x11151063
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
push 2
push 0
lea eax, [ebp - 0x20c]
push eax
call esi
mov dword [0x1127f200], eax
test eax, eax
jne 0x11151133
push 0x104
lea ecx, [ebp - 0x20c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea eax, [ebp - 0x20c]
add eax, 0xfffffffe
lea ecx, [ecx]
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x111510b0
mov edx, dword [str.PCImsg.dll]
mov ecx, dword [0x1122cddc]
mov dword [eax], edx
mov edx, dword [0x1122cde0]
mov dword [eax + 4], ecx
mov ecx, dword [0x1122cde4]
mov dword [eax + 8], edx
mov edx, dword [0x1122cde8]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x1122cdec]
push 2
mov dword [eax + 0x10], edx
push 0
lea edx, [ebp - 0x20c]
push edx
mov dword [eax + 0x14], ecx
call esi
mov dword [0x1127f200], eax
test eax, eax
jne 0x11151133
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x20c]
push eax
push str.Cannot_open_file__s__error__d
call fcn.111be4a0
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.111d9022
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x214]
push ecx
push 0
lea edx, [ebp - 0x210]
push edx
push 0
push edi
push eax
push 0x900
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
test eax, eax
jne 0x11151175
push edi
push str.Cannot_find_message__d
call fcn.111be4a0
add esp, 8
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.111d9022
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x210]
mov eax, edx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x11151180
sub eax, esi
sar eax, 1
lea eax, [edx + eax*2]
cmp eax, edx
jbe 0x111511ae
sub eax, 2
cmp word [eax], 0x20
jae 0x111511ae
xor ecx, ecx
mov word [eax], cx
mov edx, dword [ebp - 0x210]
cmp eax, edx
ja 0x11151196
test ebx, ebx
je 0x111511c3
push ebx
push edx
push str._s___d_
call fcn.111be4a0
add esp, 0xc
jmp 0x111511ce
push 0
push edx
call fcn.111b7990
add esp, 8
mov edx, dword [ebp - 0x210]
push edx
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
push 0x1122cd60
push ebx
call dword [sym.imp.MSVCR100.dll_wcsstr]
add esp, 8
test eax, eax
je 0x1115121f
lea esi, [eax + 8]
mov ecx, esi
lea edi, [ecx + 2]
jmp 0x11151200
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x11151200
sub ecx, edi
sar ecx, 1
lea ecx, [ecx + ecx + 2]
push ecx
push esi
push eax
call dword [sym.imp.MSVCR100.dll_memmove]
add esp, 0xc
mov ecx, dword [ebp - 4]
pop edi
pop esi
mov eax, ebx
xor ecx, ebp
pop ebx
call fcn.111d9022
mov esp, ebp
pop ebp
ret