Function at 0x40e394
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 5
add esp, 0xfffff004
push eax
dec eax
jne 0x40e39d
mov eax, dword [ebp - 4]
add esp, 0xfffff0cc
push ebx
push esi
push edi
lea esi, [ebp - 0x1e24]
lea edi, [ebp - 0x2224]
mov eax, 0x45da24
call fcn.00455438
push 0x4656f0
call fcn.0042333c
test eax, eax
jne 0x40e40c
push 0x30
push 0x65
call fcn.00408028
push eax
push 0x14c
call fcn.00408028
push eax
mov edx, dword [0x4656d8]
push edx
call sub.USER32.dll_MessageBoxA
mov ecx, dword [ebp - 0x1858]
mov dword fs:[0], ecx
mov eax, ecx
jmp 0x40ee29
call fcn.0041441c
mov dword [ebp - 0x185c], eax
push 0
push 9
call fcn.00412700
mov word [ebp - 0x1848], 8
lea edx, [ebp - 0x28]
push edx
call fcn.00406d98
lea eax, [ebp - 0x1894]
push eax
call fcn.004262c0
lea edx, [ebp - 0x188c]
push edx
call fcn.004262c0
push 0
push 0x4656f0
call fcn.00423214
jmp 0x40e679
test byte [ebp - 0x1884], 0x10
je 0x40e5aa
mov word [ebp - 0x1848], 0x14
push 1
push 0
lea ecx, [ebp - 0x1838]
push ecx
call fcn.00416e98
push 0x45f697
lea eax, [ebp - 0x1ce4]
push eax
lea edx, [ebp - 0x1838]
push edx
call fcn.00416f5c
jmp 0x40e578
lea ecx, [esi + 0x2c]
push ecx
call fcn.00413ddc
call fcn.004131fc
call fcn.0040853c
test byte [esi], 0x10
jne 0x40e578
push edi
call fcn.0040ee34
test eax, eax
je 0x40e578
push 1
push edi
push 0x465fe5
call fcn.0041e548
dec eax
jne 0x40e578
push 0x474
push 0
lea eax, [ebp - 0x1ce4]
push eax
call fcn.00452e2c
add esp, 0xc
xor eax, eax
or ecx, 0xffffffff
push esi
push edi
lea esi, [ebp - 0x1ce4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
push 0x465fe5
call fcn.0041834e
mov dword [ebp - 0x1878], eax
push 0x465fe5
call fcn.0041ef88
mov dword [ebp - 0x1884], eax
lea eax, [ebp - 0x1ce4]
push eax
lea edx, [ebp - 0x28]
push edx
call fcn.00406dfc
mov ebx, eax
inc ebx
push ebx
push 0x35c
call fcn.00408028
push eax
lea eax, [ebp - 0x2324]
push eax
call fcn.00456f9c
add esp, 0xc
lea edx, [ebp - 0x2324]
push edx
push 0x465b2d
call fcn.0040b14c
push edi
push esi
lea ecx, [ebp - 0x1838]
push ecx
call fcn.00416fdc
test eax, eax
je 0x40e597
cmp dword [0x466aa4], 0
je 0x40e49e
push 2
lea eax, [ebp - 0x1838]
push eax
call fcn.00416ec8
jmp 0x40e679
lea edx, [ebp - 0x2724]
push edx
lea ecx, [ebp - 0x1ce4]
push ecx
call fcn.004085c4
push 1
lea eax, [ebp - 0x2724]
push eax
push 0x465fe5
call fcn.0041e548
dec eax
jne 0x40e679
push 0x474
push 0
lea edx, [ebp - 0x1ce4]
push edx
call fcn.00452e2c
add esp, 0xc
xor eax, eax
or ecx, 0xffffffff
push esi
push edi
lea edi, [ebp - 0x2724]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea esi, [ebp - 0x1ce4]
xchg edi, esi
mov edx, ecx
mov eax, edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
push 0x465fe5
call fcn.0041834e
mov dword [ebp - 0x1878], eax
push 0x465fe5
call fcn.0041ef88
mov dword [ebp - 0x1884], eax
lea eax, [ebp - 0x1ce4]
push eax
lea edx, [ebp - 0x28]
push edx
call fcn.00406dfc
mov ebx, eax
inc ebx
push ebx
push 0x35c
call fcn.00408028
push eax
lea eax, [ebp - 0x2824]
push eax
call fcn.00456f9c
add esp, 0xc
lea edx, [ebp - 0x2824]
push edx
push 0x465b2d
call fcn.0040b14c
lea ecx, [ebp - 0x1ce4]
push ecx
push 0x4656f0
call fcn.00423214
test al, al
je 0x40e69b
cmp dword [0x466aa4], 0
je 0x40e45b
cmp dword [0x466aa4], 0
jne 0x40e6b1
lea eax, [ebp - 0x28]
push eax
call fcn.00406f44
test eax, eax
jne 0x40e726
cmp dword [0x466aa4], 0
jne 0x40e6de
push 0x30
push 0x35f
call fcn.00408028
push eax
push 0x35e
call fcn.00408028
push eax
mov edx, dword [0x4656d8]
push edx
call sub.USER32.dll_MessageBoxA
mov ecx, dword [0x4656e4]
push ecx
call sub.USER32.dll_DestroyWindow
push 0
push 0x465b2d
call fcn.0040b14c
mov eax, dword fs:[4]
dec dword [eax - 4]
push 2
lea edx, [ebp - 0x10]
push edx
call fcn.004184fc
push 2
lea ecx, [ebp - 0x28]
push ecx
call fcn.00437658
mov eax, dword [ebp - 0x1858]
mov dword fs:[0], eax
jmp 0x40ee29
mov edx, dword [0x4656e4]
push edx
call sub.USER32.dll_DestroyWindow
lea ecx, [ebp - 0x28]
push ecx
call fcn.004070b4
mov byte [0x46b158], 0
push 0x938
push 0
push 0x46b568
call fcn.00452e2c
add esp, 0xc
push 0x46b568
push 0x465fe5
call fcn.0041eca0
push 0x465fe5
call fcn.0041834e
mov dword [0x46b968], eax
xor eax, eax
or ecx, 0xffffffff
mov edi, 0x4668cb
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, 0x46b974
xchg edi, esi
mov edx, ecx
mov eax, edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [ebp - 0x1ce4]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 8]
push 0x474
mov dword [0x46be78], eax
push 0
push edx
mov dword [0x46be74], 1
call fcn.00452e2c
add esp, 0xc
lea ecx, [ebp - 0x1ce4]
mov dword [0x46b96c], ecx
mov dword [0x46b970], 1
mov dword [ebp - 0x1860], 0x3e8
xor esi, esi
jmp 0x40e9c8
push esi
lea eax, [ebp - 0x28]
push eax
lea edx, [ebp - 0x2c98]
push edx
call fcn.00406f54
lea ebx, [ebp - 0x2c98]
push esi
lea eax, [ebp - 0x28]
push eax
lea edx, [ebp - 0x310c]
push edx
call fcn.00406f54
lea ecx, [ebp - 0x310c]
cmp dword [ecx + 0x460], 0
setne al
and eax, 1
cmp byte [ebx], 0
je 0x40e9c7
test al, al
je 0x40e9c7
xor eax, eax
push esi
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea esi, [ebp - 0x350c]
xchg edi, esi
mov edx, ecx
mov eax, edi
shr ecx, 2
lea eax, [ebp - 0x350c]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
push 0x2e
push eax
call fcn.00453124
add esp, 8
mov ebx, eax
test ebx, ebx
je 0x40e9c7
xor eax, eax
mov al, byte [ebx + 2]
test byte [eax + 0x464e1d], 2
je 0x40e8d7
xor edx, edx
mov dl, byte [ebx + 3]
test byte [edx + 0x464e1d], 2
je 0x40e8d7
xor ecx, ecx
mov cl, byte [ebx + 1]
test byte [ecx + 0x464e1d], 2
je 0x40e8a7
lea eax, [ebx + 1]
jmp 0x40e8aa
lea eax, [ebx + 2]
push eax
call fcn.0041833f
pop ecx
mov dword [ebp - 0x1868], eax
mov edx, dword [ebp - 0x1868]
cmp edx, dword [ebp - 0x1860]
jge 0x40e8d7
mov ecx, dword [ebp - 0x1868]
mov dword [ebp - 0x1860], ecx
mov dword [ebp - 0x1864], esi
push 0x45f69b
push ebx
call fcn.00453000
add esp, 8
test eax, eax
je 0x40e8ff
push 0x45f6a0
push ebx
call fcn.00453000
add esp, 8
test eax, eax
jne 0x40e9c7
mov byte [ebx + 2], 0
lea eax, [ebp - 0x350c]
push eax
call fcn.00452eec
pop ecx
mov dword [ebp - 0x186c], eax
xor ebx, ebx
jmp 0x40e9b6
push ebx
lea eax, [ebp - 0x28]
push eax
lea edx, [ebp - 0x3980]
push edx
call fcn.00406f54
lea edi, [ebp - 0x3980]
push ebx
lea eax, [ebp - 0x28]
push eax
lea edx, [ebp - 0x3df4]
push edx
call fcn.00406f54
lea ecx, [ebp - 0x3df4]
cmp dword [ecx + 0x460], 0
setne al
and eax, 1
cmp byte [edi], 0
je 0x40e9b5
test al, al
je 0x40e9b5
cmp ebx, esi
je 0x40e9b5
mov edx, dword [ebp - 0x186c]
lea ecx, [ebp - 0x350c]
push edx
push edi
push ecx
call fcn.00409124
test eax, eax
jne 0x40e9b5
mov eax, dword [ebp - 0x186c]
xor edx, edx
mov dl, byte [edi + eax]
test byte [edx + 0x464e1d], 2
je 0x40e9b5
mov ecx, dword [ebp - 0x186c]
xor eax, eax
mov al, byte [edi + ecx + 1]
test byte [eax + 0x464e1d], 2
je 0x40e9b5
push 0x45f6a5
push ebx
lea edx, [ebp - 0x28]
push edx
call fcn.00407140
inc ebx
lea ecx, [ebp - 0x28]
push ecx
call fcn.00406f44
cmp eax, ebx
ja 0x40e91d
inc esi
lea eax, [ebp - 0x28]
push eax
call fcn.00406f44
cmp eax, esi
jbe 0x40e9e2
cmp dword [0x466aa4], 0
je 0x40e7ea
cmp dword [ebp - 0x1860], 0x3e7
jge 0x40eb18
mov edx, dword [ebp - 0x1864]
push edx
lea ecx, [ebp - 0x28]
push ecx
lea eax, [ebp - 0x4268]
push eax
call fcn.00406f54
lea edx, [ebp - 0x4268]
mov dword [ebp - 0x1870], edx
push 0x2e
mov ecx, dword [ebp - 0x1870]
push ecx
call fcn.00453124
add esp, 8
mov edi, eax
sub edi, dword [ebp - 0x1870]
inc edi
xor ebx, ebx
jmp 0x40eafe
push ebx
lea eax, [ebp - 0x28]
push eax
lea edx, [ebp - 0x46dc]
push edx
call fcn.00406f54
lea esi, [ebp - 0x46dc]
push ebx
lea eax, [ebp - 0x28]
push eax
lea edx, [ebp - 0x4b50]
push edx
call fcn.00406f54
lea ecx, [ebp - 0x4b50]
cmp dword [ecx + 0x460], 0
setne al
and eax, 1
cmp byte [esi], 0
je 0x40eafd
test al, al
je 0x40eafd
push edi
mov edx, dword [ebp - 0x1870]
push edx
push edi
push esi
push 0x1001
push 0x400
call sub.KERNEL32.dll_CompareStringA
cmp eax, 2
jne 0x40eafd
push 0x2e
push esi
call fcn.00453124
add esp, 8
mov esi, eax
test esi, esi
je 0x40eafd
xor ecx, ecx
mov cl, byte [esi + 2]
test byte [ecx + 0x464e1d], 2
je 0x40eafd
xor eax, eax
mov al, byte [esi + 3]
test byte [eax + 0x464e1d], 2
je 0x40eafd
xor edx, edx
mov dl, byte [esi + 1]
test byte [edx + 0x464e1d], 2
je 0x40eadc
lea ecx, [esi + 1]
jmp 0x40eadf
lea ecx, [esi + 2]
push ecx
call fcn.0041833f
pop ecx
cmp eax, dword [ebp - 0x1860]
jle 0x40eafd
push 0x45f6a6
push ebx
lea eax, [ebp - 0x28]
push eax
call fcn.00407140
inc ebx
lea edx, [ebp - 0x28]
push edx
call fcn.00406f44
cmp eax, ebx
jbe 0x40eb18
cmp dword [0x466aa4], 0
je 0x40ea36
cmp dword [ebp + 8], 0
jne 0x40eb80
mov edi, 0x46b158
mov esi, 0x45f6a7
mov eax, edi
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 0
mov edx, dword [0x4656d8]
push 0x40e130
push edx
mov ecx, dword [0x466a00]
push 0x45f6ad
push ecx
call sub.USER32.dll_DialogBoxParamA
test eax, eax
jne 0x40eb80
mov eax, dword fs:[4]
dec dword [eax - 4]
push 2
lea edx, [ebp - 0x10]
push edx
call fcn.004184fc
push 2
lea ecx, [ebp - 0x28]
push ecx
call fcn.00437658
mov eax, dword [ebp - 0x1858]
mov dword fs:[0], eax
jmp 0x40ee29
mov dword [0x466a9c], 2
xor ebx, ebx
jmp 0x40ed07
push ebx
lea eax, [ebp - 0x28]
push eax
lea edx, [ebp - 0x4fc4]
push edx
call fcn.00406f54
lea esi, [ebp - 0x4fc4]
push ebx
lea eax, [ebp - 0x28]
push eax
lea edx, [ebp - 0x5438]
push edx
call fcn.00406f54
lea ecx, [ebp - 0x5438]
cmp byte [esi], 0
mov edi, dword [ecx + 0x46c]
je 0x40ecd0
push esi
push edi
xor eax, eax
mov edi, esi
or ecx, 0xffffffff
mov esi, 0x46b568
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
mov esi, edi
mov dword [0x46b968], esi
dec esi
jne 0x40ec08
mov eax, 0x45f6b9
jmp 0x40ec0d
mov eax, 0x45f6bb
mov edi, eax
xor eax, eax
push esi
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea esi, [ebp - 0x1ce4]
xchg edi, esi
mov edx, ecx
mov eax, edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
mov byte [ebp - 0x5838], 0
cmp byte [0x46b158], 0
je 0x40ec6a
lea eax, [ebp - 0x5838]
push eax
push 0x400
call sub.KERNEL32.dll_GetCurrentDirectoryA
push 0x46b158
call fcn.00408838
push 0x46b158
call fcn.00457f40
pop ecx
push 0x46b568
call fcn.0040809c
push eax
mov edx, 0x20b
cmp dword [0x46be78], 0
jne 0x40ec84
dec edx
push edx
call fcn.00408028
push eax
lea ecx, [ebp - 0x5a38]
push ecx
call fcn.00456f9c
add esp, 0xc
lea eax, [ebp - 0x5a38]
push eax
call fcn.00413da8
call fcn.004131fc
push 0x46b568
push 0x465fe5
call fcn.0041ecdc
cmp byte [ebp - 0x5838], 0
je 0x40ecd0
lea edx, [ebp - 0x5838]
push edx
call fcn.00457f40
pop ecx
push ebx
lea ecx, [ebp - 0x28]
push ecx
call fcn.00406f44
push eax
push 0x35d
call fcn.00408028
push eax
lea eax, [ebp - 0x5b38]
push eax
call fcn.00456f9c
add esp, 0x10
lea edx, [ebp - 0x5b38]
push edx
push 0x465b2d
call fcn.0040b14c
inc ebx
lea ecx, [ebp - 0x28]
push ecx
call fcn.00406f44
cmp eax, ebx
jbe 0x40ed21
cmp dword [0x466aa4], 0
je 0x40eb91
xor eax, eax
xor edx, edx
mov dword [0x466a9c], eax
mov dword [0x466ab4], edx
mov ecx, dword [0x4656e4]
push ecx
call sub.USER32.dll_DestroyWindow
push 0
push 0x465b2d
call fcn.0040b14c
cmp dword [ebp + 8], 0
je 0x40eda6
cmp dword [0x466aa8], 0
jne 0x40edfc
push 1
push 0x45f6ca
push 0x45f6bf
call fcn.0040bb50
test eax, eax
je 0x40edfc
call fcn.0041441c
cmp eax, dword [ebp - 0x185c]
jne 0x40edfc
push 0x40
push 0x3a7
call fcn.00408028
push eax
push 0x3a8
call fcn.00408028
push eax
mov eax, dword [0x4656d8]
push eax
call sub.USER32.dll_MessageBoxA
jmp 0x40edfc
mov byte [ebp - 0x5f38], 0
lea edx, [ebp - 0x1ce4]
push edx
push 0x4656f0
call fcn.00423384
test al, al
je 0x40edeb
xor eax, eax
lea edi, [ebp - 0x1ce4]
or ecx, 0xffffffff
lea esi, [ebp - 0x5f38]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x5f38]
push eax
push 0x4656f0
call fcn.0041f7c4
mov edx, dword fs:[4]
dec dword [edx - 4]
push 2
lea ecx, [ebp - 0x10]
push ecx
call fcn.004184fc
push 2
lea eax, [ebp - 0x28]
push eax
call fcn.00437658
mov edx, dword [ebp - 0x1858]
mov dword fs:[0], edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4