Function at 0x42fda0
Capabilities:
Get common file path

Disassembly:
sub esp, 0x3ec
push ebp
push esi
push edi
mov ecx, 0x10
xor eax, eax
lea edi, [esp + 0x1c]
mov dword [esp + 0x18], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x18]
mov ecx, 0x4c5150
push eax
call fcn.00446d30
test byte [esp + 0x28], 0x80
jne 0x42ff3e
mov ebp, dword [esp + 0x3fc]
test ebp, ebp
je 0x42ff3e
mov edx, dword [esp + 0x404]
mov esi, dword [esp + 0x408]
mov ecx, 0x72
xor eax, eax
lea edi, [esp + 0x22d]
mov byte [esp + 0x22c], 0
test edx, edx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], esi
rep stosd dword es:[edi], eax
jge 0x42ff58
mov cl, byte [0x4c2d68]
lea edi, [esp + 0x61]
mov byte [esp + 0x60], cl
mov ecx, 0x40
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x400]
stosb byte es:[edi], al
call fcn.0047b5fb
mov eax, dword [esp + 0x400]
cmp dword [eax - 8], 2
jl 0x42fe5a
cmp byte [eax + 1], 0x3a
je 0x42ff13
lea edx, [esp + 0x60]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea edi, [esp + 0x60]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp byte [esp + ecx + 0x5f], 0x2f
je 0x42fec2
lea edi, [esp + 0x60]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp byte [esp + ecx + 0x5f], 0x5c
je 0x42fec2
mov edi, 0x4ba270
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x60]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x60]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov eax, 0x104
sub eax, ecx
mov ecx, dword [esp + 0x400]
push eax
push ecx
lea edi, [esp + 0x68]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edx, [esp + ecx + 0x68]
push edx
call fcn.004669f0
add esp, 0xc
lea eax, [esp + 0x60]
lea ecx, [esp + 0x400]
push eax
call fcn.0047e66d
mov eax, dword [esp + 0x400]
mov cl, byte [eax]
lea edx, [esp + 0x10]
mov byte [esp + 0x14], cl
lea eax, [esp + 0xc]
push edx
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x230]
push eax
push ecx
push edx
mov ecx, 0x4c5150
call fcn.004460d0
test eax, eax
jne 0x42ff6c
lea ecx, [esp + 0x400]
call fcn.0047e4e4
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x3ec
ret 0x14
lea eax, [esp + 0x22c]
mov ecx, 0x4c5150
push eax
push esi
push edx
call fcn.00443220
mov edx, dword [ebp + 0x4c]
mov eax, dword [esp + 0xc]
cmp edx, eax
jne 0x42ff3e
cmp dword [ebp + 0x24], 2
jne 0x42ffc5
mov ecx, 0x72
xor eax, eax
lea edi, [esp + 0x61]
mov byte [esp + 0x60], 0
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0x50]
lea ecx, [esp + 0x60]
push ecx
push eax
push edx
mov ecx, 0x4c5150
call fcn.00443220
test byte [esp + 0x63], 1
jne 0x42ffb7
mov ecx, dword [ebp + 0x50]
mov eax, dword [esp + 0x10]
cmp ecx, eax
je 0x42ffc5
jmp 0x42ff3e
test byte [esp + 0x22e], 4
jne 0x42ff3e
test byte [esp + 0x28], 0x80
jne 0x42ff3e
mov eax, dword [esp + 0x40c]
test eax, eax
je 0x42ffee
push 0
push 0x10
push 0x4c2078
push 0x5f6
call fcn.00441020
lea ecx, [esp + 0x400]
call fcn.0047e4e4
pop edi
pop esi
mov eax, 1
pop ebp
add esp, 0x3ec
ret 0x14