Function at 0x4136a0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x22c
mov eax, dword [0x448004]
mov edx, dword [eax]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 0xc
mov ebx, eax
call fcn.00416600
mov dword [eax], 0x41b595
mov dword [eax + 4], 0x9e7
xor eax, eax
cmp ebx, 0x80004003
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], str.Unexpected_hr__lx._n
call fcn.004077c0
mov eax, dword [0x448004]
mov edx, dword [eax]
mov dword [esp + 8], 0
mov dword [esp + 4], 3
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 0xc
mov ebx, eax
mov eax, 0x9ea
call fcn.00406da0
xor eax, eax
cmp ebx, 0x80004003
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004077c0
mov eax, dword [0x448004]
lea ecx, [ebp - 0x21c]
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], 3
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 0xc
mov ebx, eax
mov eax, 0x9ed
call fcn.00406da0
xor eax, eax
cmp ebx, 0x80070057
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004077c0
mov eax, dword [0x448004]
lea ecx, [ebp - 0x21c]
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 0xc
mov ebx, eax
call fcn.00416600
mov dword [eax], 0x41b595
mov dword [eax + 4], 0x9f0
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], str.Unexpected_hr__lx._n
call fcn.004077c0
mov eax, dword [ebp - 0x21c]
lea ecx, [ebp - 0x218]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x1c]
sub esp, 8
mov ebx, eax
mov eax, 0x9f2
call fcn.00406da0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
lea ebx, [ebp - 0x214]
mov dword [esp], eax
call fcn.004077c0
mov dword [esp + 4], 0x104
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_GetWindowsDirectoryW]
sub esp, 8
call fcn.00416600
mov dword [eax], 0x41b595
mov dword [eax + 4], 0x9f4
mov eax, ebx
shr eax, 0x10
mov dword [ebp - 0x220], eax
je 0x413d00
mov dword [esp + 4], 0xffffffff
mov esi, str._invalid_
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
sub esp, 8
test eax, eax
jne 0x41388d
mov eax, ebx
call fcn.00406dc0
mov esi, eax
mov edx, dword [ebp - 0x218]
test edx, edx
je 0x413d23
mov eax, edx
shr eax, 0x10
je 0x413d80
mov dword [esp], edx
mov dword [esp + 4], 0xffffffff
mov dword [ebp - 0x224], edx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, dword [ebp - 0x224]
sub esp, 8
test eax, eax
jne 0x413da0
mov eax, edx
call fcn.00406dc0
mov edx, dword [ebp - 0x218]
mov edi, eax
mov eax, dword [sym.imp.kernel32.dll_lstrcmpiW]
mov dword [esp + 4], edx
mov dword [esp], ebx
mov dword [ebp - 0x224], eax
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 0xc], esi
movzx eax, al
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], str.got__s__expected__s_n
call fcn.004077c0
mov eax, dword [ebp - 0x218]
mov edi, dword [sym.imp.oleaut32.dll_SysFreeString]
mov dword [esp], eax
call edi
mov eax, dword [ebp - 0x21c]
sub esp, 4
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [0x448004]
lea ecx, [ebp - 0x21c]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 0xc
mov esi, eax
mov eax, 0x9f9
call fcn.00406da0
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004077c0
mov eax, dword [ebp - 0x21c]
lea ecx, [ebp - 0x218]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x1c]
sub esp, 8
mov esi, eax
call fcn.00416600
mov dword [eax], 0x41b595
mov dword [eax + 4], 0x9fb
xor eax, eax
test esi, esi
sete al
mov dword [esp + 8], esi
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004077c0
mov dword [esp + 4], 0x104
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_GetSystemDirectoryW]
mov eax, 0x9fd
sub esp, 8
call fcn.00406da0
mov esi, dword [ebp - 0x220]
test esi, esi
je 0x413cc8
mov dword [esp + 4], 0xffffffff
mov esi, str._invalid_
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
sub esp, 8
test eax, eax
jne 0x413a1e
mov eax, ebx
call fcn.00406dc0
mov esi, eax
mov edx, dword [ebp - 0x218]
test edx, edx
je 0x413ceb
mov eax, edx
shr eax, 0x10
je 0x413d30
mov dword [esp], edx
mov dword [esp + 4], 0xffffffff
mov dword [ebp - 0x228], edx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, dword [ebp - 0x228]
sub esp, 8
test eax, eax
jne 0x413db0
mov eax, edx
call fcn.00406dc0
mov edx, dword [ebp - 0x218]
mov dword [ebp - 0x228], eax
mov dword [esp + 4], edx
mov dword [esp], ebx
mov eax, dword [ebp - 0x224]
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 0xc], esi
mov ecx, dword [ebp - 0x228]
movzx eax, al
mov dword [esp + 4], str.got__s__expected__s_n
mov dword [esp + 8], ecx
mov dword [esp], eax
call fcn.004077c0
mov eax, dword [ebp - 0x218]
mov dword [esp], eax
call edi
mov eax, dword [ebp - 0x21c]
sub esp, 4
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [0x448004]
lea ecx, [ebp - 0x21c]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [edx + 0x58]
sub esp, 0xc
mov esi, eax
mov eax, 0xa02
call fcn.00406da0
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004077c0
mov eax, dword [ebp - 0x21c]
lea ecx, [ebp - 0x218]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x1c]
sub esp, 8
mov esi, eax
call fcn.00416600
mov dword [eax], 0x41b595
mov dword [eax + 4], 0xa04
xor eax, eax
test esi, esi
sete al
mov dword [esp + 8], esi
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004077c0
mov dword [esp + 4], ebx
mov dword [esp], 0x104
call dword [sym.imp.kernel32.dll_GetTempPathW]
sub esp, 8
test eax, eax
je 0x413b90
cmp word [ebp + eax*2 - 0x216], 0x5c
lea edx, [eax - 1]
jne 0x413b90
xor ecx, ecx
mov word [ebp + edx*2 - 0x214], cx
lea esi, [esi]
call fcn.00416600
mov dword [eax], 0x41b595
mov dword [eax + 4], 0xa09
mov eax, dword [ebp - 0x220]
test eax, eax
je 0x413c90
mov dword [esp + 4], 0xffffffff
mov esi, str._invalid_
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
sub esp, 8
test eax, eax
jne 0x413bd6
mov eax, ebx
call fcn.00406dc0
mov esi, eax
mov edx, dword [ebp - 0x218]
test edx, edx
je 0x413cb3
mov eax, edx
shr eax, 0x10
je 0x413d58
mov dword [esp], edx
mov dword [esp + 4], 0xffffffff
mov dword [ebp - 0x220], edx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, dword [ebp - 0x220]
sub esp, 8
test eax, eax
jne 0x413dc8
mov eax, edx
call fcn.00406dc0
mov edx, dword [ebp - 0x218]
mov dword [ebp - 0x220], eax
mov dword [esp + 4], edx
mov dword [esp], ebx
mov eax, dword [ebp - 0x224]
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 0xc], esi
mov ecx, dword [ebp - 0x220]
movzx eax, al
mov dword [esp + 4], str.got__s__expected__s_n
mov dword [esp + 8], ecx
mov dword [esp], eax
call fcn.004077c0
mov eax, dword [ebp - 0x218]
mov dword [esp], eax
call edi
mov eax, dword [ebp - 0x21c]
sub esp, 4
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
movzx eax, bx
mov dword [esp], str._04x
mov dword [esp + 4], eax
call fcn.00406a40
mov edx, dword [ebp - 0x218]
mov esi, eax
test edx, edx
jne 0x413be4
mov dword [ebp - 0x220], str._null_
jmp 0x413c2a
movzx eax, bx
mov dword [esp], str._04x
mov dword [esp + 4], eax
call fcn.00406a40
mov edx, dword [ebp - 0x218]
mov esi, eax
test edx, edx
jne 0x413a2c
mov dword [ebp - 0x228], str._null_
jmp 0x413a72
movzx eax, bx
mov dword [esp], str._04x
mov dword [esp + 4], eax
call fcn.00406a40
mov edx, dword [ebp - 0x218]
mov esi, eax
test edx, edx
jne 0x41389b
mov edi, str._null_
jmp 0x4138dd
movzx edx, dx
mov dword [esp], str._04x
mov dword [esp + 4], edx
call fcn.00406a40
mov edx, dword [ebp - 0x218]
mov dword [ebp - 0x228], eax
jmp 0x413a72
movzx edx, dx
mov dword [esp], str._04x
mov dword [esp + 4], edx
call fcn.00406a40
mov edx, dword [ebp - 0x218]
mov dword [ebp - 0x220], eax
jmp 0x413c2a
movzx edx, dx
mov dword [esp], str._04x
mov dword [esp + 4], edx
call fcn.00406a40
mov edx, dword [ebp - 0x218]
mov edi, eax
jmp 0x4138dd
mov edx, dword [ebp - 0x218]
mov edi, str._invalid_
jmp 0x4138dd
mov dword [ebp - 0x228], str._invalid_
mov edx, dword [ebp - 0x218]
jmp 0x413a72
mov dword [ebp - 0x220], str._invalid_
mov edx, dword [ebp - 0x218]
jmp 0x413c2a