Function at 0x4276a0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4d8308
push eax
mov dword fs:[0], esp
mov eax, dword [ebp + 8]
sub esp, 0x454
push esi
mov esi, dword [ebp + 0x10]
test eax, eax
je 0x4276cf
cmp word [eax], 0
jne 0x4276e1
test esi, esi
je 0x427c54
cmp word [esi], 0
je 0x427c54
mov ecx, dword [0x52fe34]
push ebx
call fcn.00459da0
mov ebx, eax
mov dword [ebp - 0x10], ebx
test ebx, ebx
je 0x427701
cmp word [ebx], 0
jne 0x427701
xor ebx, ebx
mov dword [ebp - 0x10], ebx
mov eax, dword [ebp + 8]
push edi
xor edi, edi
test eax, eax
je 0x4277e4
cmp word [eax], di
je 0x4277e4
cmp dword [ebp + 0xc], edi
je 0x4278d1
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x427724
sub eax, edx
sar eax, 1
mov edi, eax
mov eax, dword [ebp + 0xc]
lea edx, [eax + 2]
jmp 0x427740
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x427740
sub eax, edx
sar eax, 1
test ebx, ebx
je 0x427771
mov ecx, ebx
lea esi, [ecx + 2]
jmp 0x427760
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x427760
sub ecx, esi
sar ecx, 1
jmp 0x427773
xor ecx, ecx
add ecx, eax
lea esi, [ecx + edi + 0x20]
lea eax, [esi + esi]
push eax
call fcn.0044c4d0
mov edi, eax
add esp, 4
test edi, edi
je 0x42785b
mov edx, dword [ebp + 0xc]
push edx
push esi
xor ecx, ecx
push edi
mov word [edi], cx
call fcn.004017b0
push 0x4e494c
push esi
push edi
call fcn.004017b0
test ebx, ebx
je 0x4277cf
push str._config__
push esi
push edi
call fcn.004017b0
push ebx
push esi
push edi
call fcn.004017b0
push 0x4e5880
push esi
push edi
call fcn.004017b0
push 0x4e720c
push esi
push edi
call fcn.004017b0
mov eax, dword [ebp + 8]
push eax
jmp 0x4278c7
mov eax, esi
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4277f0
mov ebx, dword [ebp + 0xc]
sub eax, edx
sar eax, 1
test ebx, ebx
je 0x427823
mov ecx, ebx
lea esi, [ecx + 2]
jmp 0x427810
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x427810
sub ecx, esi
sar ecx, 1
mov edi, ecx
jmp 0x427825
xor edi, edi
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x427841
lea esi, [ecx + 2]
nop
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x427830
sub ecx, esi
sar ecx, 1
jmp 0x427843
xor ecx, ecx
add ecx, edi
lea esi, [ecx + eax + 0x20]
lea ecx, [esi + esi]
push ecx
call fcn.0044c4d0
mov edi, eax
add esp, 4
test edi, edi
jne 0x427871
pop edi
pop ebx
mov eax, 0x8000ffff
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
xor edx, edx
mov word [edi], dx
test ebx, ebx
je 0x42788e
push ebx
push esi
push edi
call fcn.004017b0
push 0x4e494c
push esi
push edi
call fcn.004017b0
cmp dword [ebp - 0x10], 0
je 0x4278b7
push str._config__
push esi
push edi
call fcn.004017b0
mov eax, dword [ebp - 0x10]
push eax
push esi
push edi
call fcn.004017b0
push 0x4e5880
push esi
push edi
call fcn.004017b0
push 0x4e720c
push esi
push edi
call fcn.004017b0
mov ecx, dword [ebp + 0x10]
push ecx
push esi
push edi
call fcn.004017b0
mov dword [ebp + 8], edi
lea edx, [ebp - 0x14]
push edx
push 0x5088e0
push 1
xor esi, esi
push esi
push 0x508a10
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov ebx, eax
cmp ebx, esi
jl 0x427c34
push 0x104
lea eax, [ebp - 0x460]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x427c13
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
lea edx, [ebp - 0x460]
push edx
push eax
mov eax, dword [ecx + 0x50]
call eax
mov ebx, eax
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x1c], ebx
call fcn.00407080
push 0x208
lea edx, [ebp - 0x256]
xor ecx, ecx
push esi
push edx
mov dword [ebp - 4], esi
mov word [ebp - 0x258], cx
call fcn.004c9b50
mov eax, dword [ebp + 8]
push esi
lea ecx, [ebp - 0x4c]
push ecx
lea edx, [ebp - 0x10]
push edx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x18], esi
call fcn.00407360
add esp, 0x18
test eax, eax
jne 0x427afb
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
mov eax, dword [ebp - 0x48]
push str._icon
push eax
call esi
test eax, eax
je 0x4279ad
mov ecx, dword [ebp - 0x48]
push str._cmd
push ecx
call esi
test eax, eax
je 0x4279c9
push 0
lea edx, [ebp - 0x4c]
push edx
lea eax, [ebp - 0x10]
push eax
call fcn.00407360
add esp, 0xc
test eax, eax
je 0x427974
jmp 0x427afb
push 0
lea ecx, [ebp - 0x4c]
push ecx
lea edx, [ebp - 0x10]
push edx
call fcn.00407360
add esp, 0xc
test eax, eax
jne 0x427afb
jmp 0x427a22
mov eax, dword [ebp - 0x10]
movzx ecx, word [eax]
cmp cx, 0x40
je 0x4279ee
cmp cx, 0x7b
je 0x4279ee
push 0x4ea000
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x427a08
mov eax, dword [ebp - 0x10]
mov ecx, dword [0x52fe2c]
push 0
push 0
push eax
call fcn.0041cf80
mov dword [ebp - 0x18], eax
test eax, eax
je 0x427a08
mov dword [ebp - 0x10], eax
push 0
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x10]
push ecx
call fcn.00407360
add esp, 0xc
test eax, eax
jne 0x427ae9
mov esi, dword [ebp - 0x48]
test esi, esi
je 0x427ae9
cmp word [esi], 0
je 0x427ae9
push esi
call fcn.004c6380
add esp, 4
mov dword [ebp - 0x34], eax
test eax, eax
je 0x427a49
mov esi, eax
lea edx, [ebp - 0x20]
push edx
lea eax, [ebp - 0x258]
push eax
push 0x105
push esi
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
test eax, eax
je 0x427a80
cmp eax, 0x105
jae 0x427a80
lea ecx, [ebp - 0x258]
push 0
push ecx
call fcn.004c5850
add esp, 8
test al, al
jne 0x427ad6
mov ebx, dword [sym.imp.KERNEL32.dll_SearchPathW]
lea edx, [ebp - 0x20]
push edx
lea eax, [ebp - 0x258]
push eax
push 0x105
push 0
push esi
push 0
call ebx
test eax, eax
je 0x427aa8
cmp eax, 0x105
jb 0x427ac2
lea ecx, [ebp - 0x20]
push ecx
lea edx, [ebp - 0x258]
push edx
push 0x105
push 0x4e4b38
push esi
push 0
call ebx
test eax, eax
je 0x427acd
cmp eax, 0x105
jb 0x427ad6
xor eax, eax
mov word [ebp - 0x258], ax
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x427ae6
push eax
call fcn.0044c4f0
add esp, 4
mov ebx, dword [ebp - 0x1c]
cmp dword [ebp - 0x18], 0
je 0x427afb
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.0044c4f0
add esp, 4
cmp word [ebp - 0x258], 0
lea ecx, [ebp - 0x258]
jne 0x427b11
lea ecx, [ebp - 0x460]
mov eax, dword [ebp - 0x14]
mov edx, dword [eax]
push 0
push ecx
push eax
mov eax, dword [edx + 0x44]
call eax
lea ecx, [ebp - 0x460]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
je 0x427b4e
cmp eax, 0x104
jae 0x427b4e
mov eax, dword [ebp - 0x14]
mov edx, dword [eax]
mov edx, dword [edx + 0x24]
lea ecx, [ebp - 0x460]
push ecx
push eax
call edx
test ebx, ebx
jl 0x427c02
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x2c]
call eax
mov ebx, eax
test ebx, ebx
jl 0x427c02
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
lea edx, [ebp + 8]
push edx
push 0x4ec2ac
push eax
mov eax, dword [ecx]
call eax
mov ebx, eax
test ebx, ebx
jl 0x427c02
mov edx, dword [ebp + 0x10]
xor eax, eax
mov ecx, 8
push edx
mov word [ebp - 0x30], cx
mov dword [ebp - 0x2e], eax
mov dword [ebp - 0x2a], eax
mov dword [ebp - 0x26], eax
mov word [ebp - 0x22], ax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
lea edx, [ebp - 0x30]
push edx
push 0x508a50
push eax
mov eax, dword [ecx + 0x18]
call eax
mov ebx, eax
test ebx, ebx
jl 0x427bed
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x1c]
push eax
call edx
mov ebx, eax
test ebx, ebx
jl 0x427bed
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
push edx
push 0x4ec29c
push eax
mov eax, dword [ecx]
call eax
mov ebx, eax
mov ecx, dword [ebp - 0x28]
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebp + 8]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
lea ecx, [ebp - 0x4c]
mov dword [ebp - 4], 0xffffffff
call fcn.004070a0
jmp 0x427c29
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, esi
jle 0x427c27
and eax, 0xffff
or eax, 0x80070000
mov ebx, eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test edi, edi
je 0x427c41
push edi
call fcn.0044c4f0
add esp, 4
pop edi
mov eax, ebx
pop ebx
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0xc]
mov eax, 0x80070057
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret