Function at 0x409f25
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4a8
mov eax, dword [0x46600c]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
push edi
push 0x5c
mov edi, ecx
mov dword [ebp - 0x428], 7
pop esi
xor ebx, ebx
xor eax, eax
push 2
mov ecx, dword [edi + 0x78]
mov dword [ebp - 0x42c], ebx
mov word [ebp - 0x43c], ax
pop edx
test ecx, ecx
je 0x409f78
cmp dword [edi + 0x7c], 8
lea eax, [edi + 0x68]
jb 0x409f70
mov eax, dword [eax]
cmp word [eax], si
jne 0x409f78
mov dword [edi + 0x64], edx
cmp dword [edi + 0x64], edx
jne 0x409fcf
lea edx, [edi + 0x68]
lea ecx, [ebp - 0x484]
call fcn.0040336e
push eax
lea ecx, [ebp - 0x43c]
call fcn.004023e5
lea ecx, [ebp - 0x484]
call fcn.0040203f
cmp dword [ebp - 0x42c], ebx
jne 0x40a124
lea ecx, [ebp - 0x454]
call fcn.00411f00
lea edx, [ebp - 0x43c]
lea ecx, [ebp - 0x454]
call fcn.0040dd80
jmp 0x40a119
mov esi, 0x4597dc
cmp dword [edi + 0x64], ebx
jne 0x40a00d
push 0x26
lea edx, [ebp - 0x43c]
pop ecx
call fcn.00403366
mov edx, 0x4597bc
lea ecx, [ebp - 0x43c]
call fcn.0040c210
push esi
call fcn.0043ef4e
pop ecx
push eax
push esi
lea ecx, [ebp - 0x43c]
call fcn.004025a8
jmp 0x40a077
lea eax, [ebp - 0x424]
mov esi, 0x208
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
je 0x40a050
cmp eax, esi
jae 0x40a050
xor eax, eax
mov word [ebp - 0x14], ax
lea eax, [ebp - 0x424]
push eax
call fcn.0043ef4e
pop ecx
push eax
lea eax, [ebp - 0x424]
push eax
lea ecx, [ebp - 0x43c]
call fcn.0040206a
jmp 0x40a077
lea ecx, [ebp - 0x454]
call fcn.00411f00
lea edx, [ebp - 0x43c]
lea ecx, [ebp - 0x454]
call fcn.0040dd80
lea ecx, [ebp - 0x454]
call fcn.0040203f
cmp dword [edi + 0x78], ebx
je 0x40a124
lea eax, [edi + 0x68]
push eax
lea ecx, [ebp - 0x454]
call fcn.0040241c
mov esi, 0x45a608
lea ecx, [ebp - 0x454]
mov edx, esi
call fcn.0040c180
mov edx, 0x4597bc
lea ecx, [ebp - 0x43c]
call fcn.0040c210
push 0x4597dc
call fcn.0043ef4e
pop ecx
push eax
push 0x4597dc
lea ecx, [ebp - 0x43c]
call fcn.004025a8
cmp dword [ebp - 0x440], 8
lea eax, [ebp - 0x454]
push dword [ebp - 0x444]
cmovae eax, dword [ebp - 0x454]
lea ecx, [ebp - 0x43c]
push eax
call fcn.004025a8
mov edx, esi
lea ecx, [ebp - 0x43c]
call fcn.0040c210
mov esi, 0x4597dc
push esi
call fcn.0043ef4e
pop ecx
push eax
push esi
lea ecx, [ebp - 0x43c]
call fcn.004025a8
lea ecx, [ebp - 0x454]
call fcn.0040203f
cmp dword [edi + 0x64], 1
lea esi, [edi + 0x2c4]
lea eax, [edi + 0x68]
je 0x40a139
lea eax, [ebp - 0x43c]
push eax
mov ecx, esi
call fcn.00401f8e
cmp dword [ebp - 0x42c], ebx
je 0x40a30f
cmp byte [edi + 0x80], bl
je 0x40a30f
cmp dword [edi + 0x78], ebx
je 0x40a30f
cmp dword [edi + 0x2d4], ebx
je 0x40a30f
lea ecx, [ebp - 0x4a4]
call fcn.004051c0
push 0x45a5e0
lea ecx, [ebp - 0x454]
call fcn.00401fbc
lea eax, [ebp - 0x454]
push eax
push ecx
lea ecx, [ebp - 0x4a4]
call fcn.00405274
lea ecx, [ebp - 0x454]
mov bl, al
call fcn.0040203f
test bl, bl
je 0x40a302
and dword [ebp - 0x45c], 0
xor eax, eax
and dword [ebp - 0x444], eax
push 7
pop ecx
mov dword [ebp - 0x458], ecx
mov dword [ebp - 0x440], ecx
lea ecx, [ebp - 0x454]
push esi
mov word [ebp - 0x46c], ax
mov word [ebp - 0x454], ax
call fcn.00401f8e
lea ecx, [ebp - 0x454]
call fcn.0040c2d0
push 0x25
push 0x3a
pop edx
lea ecx, [ebp - 0x454]
call fcn.0040c140
add esp, 4
push 0x25
push 0x5c
pop edx
call fcn.0040c140
lea ecx, [ebp - 0x484]
mov dword [esp], 0x45a5e0
call fcn.00401fbc
lea eax, [ebp - 0x46c]
push eax
lea eax, [ebp - 0x454]
push eax
lea eax, [ebp - 0x484]
push eax
push ecx
lea ecx, [ebp - 0x4a4]
call fcn.004052c9
test al, al
je 0x40a26b
cmp dword [ebp - 0x45c], 0
je 0x40a26b
lea edx, [ebp - 0x46c]
lea ecx, [ebp - 0x43c]
call fcn.0040bfd0
test al, al
jne 0x40a26b
xor ebx, ebx
inc ebx
jmp 0x40a26d
xor bl, bl
lea ecx, [ebp - 0x484]
call fcn.0040203f
test bl, bl
je 0x40a2ec
push 0x3ec
push dword [edi + 4]
call dword [sym.imp.USER32.dll_GetDlgItem]
mov ebx, eax
test ebx, ebx
je 0x40a2da
cmp byte [ebp + 8], 0
je 0x40a2da
cmp dword [ebp - 0x458], 8
lea ecx, [ebp - 0x46c]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
cmovae ecx, dword [ebp - 0x46c]
push ecx
push 0
push 0x143
push ebx
call esi
cmp dword [ebp - 0x428], 8
lea eax, [ebp - 0x43c]
cmovae eax, dword [ebp - 0x43c]
push eax
push 0
push 0x143
push ebx
call esi
lea eax, [ebp - 0x46c]
push eax
lea ecx, [ebp - 0x43c]
call fcn.00401f8e
lea ecx, [ebp - 0x454]
call fcn.0040203f
lea ecx, [ebp - 0x46c]
call fcn.0040203f
lea ecx, [ebp - 0x4a4]
call fcn.00405264
xor ebx, ebx
lea esi, [edi + 0x240]
lea ecx, [ebp - 0x484]
lea edx, [edi + 0x18]
cmp dword [edi + 0x28], ebx
jne 0x40a329
lea edx, [ebp - 0x43c]
call fcn.0040336e
push eax
mov ecx, esi
call fcn.004023e5
lea ecx, [ebp - 0x484]
call fcn.0040203f
lea ecx, [ebp - 0x43c]
call fcn.0040203f
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0043af96
leave
ret 4