Function at 0x402c0c
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 2
add esp, 0xfffff004
push eax
dec eax
jne 0x402c15
mov eax, dword [ebp - 4]
add esp, 0xfffffe94
push ebx
push esi
push edi
lea edi, [ebp - 0x1970]
mov eax, 0x45d085
call fcn.00455438
push 0x45dd1f
push 0x4672c8
call fcn.004530f8
add esp, 8
test eax, eax
jne 0x402ce5
push 0x404
call fcn.00459db0
mov ebx, eax
pop ecx
xor eax, eax
mov dword [0x4676c8], ebx
or ecx, 0xffffffff
mov edi, 0x4672c8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, ebx
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]
push 1
push 0x4672c8
push 0x465fe5
call fcn.0041e548
dec eax
je 0x402cb1
mov eax, dword [ebp - 0x1830]
mov dword fs:[0], eax
jmp 0x402ee0
push 0x465fe5
call fcn.0041834e
mov edx, dword [0x4676c8]
mov dword [edx + 0x400], eax
mov dword [0x4676cc], 1
mov ecx, dword [ebp - 0x1830]
mov dword fs:[0], ecx
mov eax, ecx
jmp 0x402ee0
push 0
push 9
call fcn.00412700
mov word [ebp - 0x1820], 8
mov eax, dword [0x468ee0]
test eax, eax
je 0x402d05
cmp eax, 3
jne 0x402d09
xor edx, edx
jmp 0x402d0e
mov edx, 1
push edx
push 0
lea ecx, [ebp - 0x1810]
push ecx
call fcn.00416e98
push edi
xor eax, eax
or ecx, 0xffffffff
mov edi, 0x4672c8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea esi, [ebp - 0x1d70]
xchg edi, esi
mov edx, ecx
mov eax, edi
shr ecx, 2
lea eax, [ebp - 0x1d70]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
push eax
call fcn.0040809c
mov byte [eax], 0
cmp byte [ebp - 0x1d70], 0
jne 0x402d70
lea edx, [ebp - 0x1d70]
push edx
push 0x400
call sub.KERNEL32.dll_GetCurrentDirectoryA
push 0x4672c8
call fcn.0040809c
mov ebx, eax
push 0x45dd22
lea eax, [ebp - 0x1d70]
push eax
lea edx, [ebp - 0x1810]
push edx
call fcn.00416f5c
jmp 0x402e70
lea ecx, [edi + 0x2c]
push ecx
call fcn.00413ddc
call fcn.004131fc
call fcn.0040853c
test byte [edi], 0x10
jne 0x402e70
push 0
lea eax, [edi + 0x2c]
push eax
push ebx
call fcn.0043f8d8
test al, al
je 0x402e70
push 1
lea edx, [ebp - 0x2170]
push edx
push 0x465fe5
call fcn.0041e548
dec eax
jne 0x402e70
mov ecx, dword [0x4676cc]
inc ecx
mov eax, ecx
shl eax, 8
add eax, ecx
shl eax, 2
push eax
mov edx, dword [0x4676c8]
push edx
call fcn.00459ccc
mov esi, eax
add esp, 8
mov dword [0x4676c8], esi
mov eax, dword [0x4676cc]
push esi
mov edx, eax
push edi
shl eax, 8
lea edi, [ebp - 0x2170]
add eax, edx
shl eax, 2
add eax, esi
mov esi, eax
xor eax, eax
or ecx, 0xffffffff
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 edx, dword [0x4676cc]
mov ecx, edx
shl edx, 8
add edx, ecx
mov ecx, dword [0x4676c8]
mov dword [ecx + edx*4 + 0x400], eax
inc dword [0x4676cc]
lea eax, [ebp - 0x2170]
lea edx, [ebp - 0x1810]
push eax
push edi
push edx
call fcn.00416fdc
test eax, eax
je 0x402e95
cmp dword [0x466aa4], 0
je 0x402d99
cmp dword [0x466aa4], 0
je 0x402eba
mov eax, dword [0x4676c8]
push eax
call fcn.00459d7c
pop ecx
xor edx, edx
mov dword [0x4676c8], edx
xor ecx, ecx
mov dword [0x4676cc], ecx
mov eax, dword [0x4656e4]
push eax
call sub.USER32.dll_DestroyWindow
push 2
lea edx, [ebp - 0x1810]
push edx
call fcn.00416ec8
mov ecx, dword [ebp - 0x1830]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret