Function at 0x403a0e
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x520
mov eax, dword [0x410040]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
sub eax, 0
push edi
mov edi, ecx
mov dword [ebp - 0x520], edi
je 0x409492
dec eax
je 0x409486
dec eax
jne 0x403b88
mov dword [ebp - 0x51c], 0x403ba8
test ebx, ebx
je 0x403b4a
cmp byte [esi + 8], 0
jne 0x403b97
call fcn.0040133b
test eax, eax
je 0x4094a8
lea eax, [ebp - 0x20c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
je 0x4094e9
lea eax, [ebp - 0x518]
push eax
push ebx
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCommonPrefixW]
test eax, eax
je 0x403b97
lea eax, [ebp - 0x518]
push eax
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.MSVCR80.dll__wcsicmp]
test eax, eax
pop ecx
pop ecx
jne 0x403b97
push eax
push ebx
push 0x10
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x518]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRelativePathToW]
test eax, eax
je 0x403b97
lea eax, [ebp - 0x518]
push eax
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCanonicalizeW]
test eax, eax
je 0x403b97
lea eax, [ebp - 0x20c]
push eax
push 0x402040
push esi
call fcn.00403987
add esp, 0xc
cmp byte [esi + 0xa], 0
jne 0x4094f6
cmp dword [ebp + 0x10], 0
jle 0x403b37
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x403bb8
push esi
call fcn.00403987
add esp, 0x10
push 0x403bc8
push esi
call fcn.00403987
mov edi, dword [ebp - 0x520]
pop ecx
pop ecx
cmp dword [ebp + 8], 0xffffffff
je 0x403b6c
push dword [ebp + 8]
push 0x403ba0
push dword [ebp - 0x51c]
push 0x403bd0
push esi
call fcn.00403987
add esp, 0x14
test edi, edi
je 0x409529
cmp word [edi], 0
je 0x409529
push 8
push esi
mov eax, edi
call fcn.00403be8
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
call fcn.00401317
leave
ret 0x18
push ebx
jmp 0x403b05
inc edx
in eax, dx
cmpsd dword [esi], dword es:[edi]
jne 0x4093ce
xor eax, 0x6755d2c1
xchg byte [edi + 8], al
salc
xor ah, byte [ecx - 0x2a]
mov ah, 0x6c
xor byte [edi + 0x21da3dbd], bh
mov dh, 0xf6
sbb eax, dword [ecx - 0x6c]
push 0xef1ae49a
xor dl, byte [esi]
sub eax, dword [ecx - 0x54]
xor dword [ebx], esp
xchg esi, eax
adc al, 0x48
push edi
arpl cx, cx
fsubr qword [edx + 0xe]
pop ds
xchg ecx, eax
outsd dx, dword [esi]
outsb dx, byte [esi]
sub ebp, dword [ebp - 0x625831ee]
cmpsd dword [esi], dword es:[edi]
popfd
rol dword [ebx], 1
and byte [edx + 0x60], bh
stosd dword es:[edi], eax
pop eax
dec esi
invalid
out dx, eax
mov eax, dword cs:[0x4efa7653]
sub dword [edi - 8], esi
clc
mov byte [0x5bb1acc7], al
fisttp dword [esi - 0x4d3fd54a]
inc edx
jmp 0x409384
xchg esp, eax
ror byte [eax + 0x2e], 0x9d
jge 0x4093bf
xchg byte [esi - 0x4dc333], dl
cmp edx, edi
mov edx, ebx
push esi
fnstcw word [eax + 0x6b]
in eax, dx
and eax, 0x1038c3d
test eax, 0xb8c2a97e
imul ebp, ebp, 0x25
cmp eax, 0xa901038c
jle 0x4093d6
test eax, 0xbe24b8c2
ret 0x24b8
and al, 0xbe
mov cl, 0xc2
jbe 0x4093cd
test dword [edi], esp
push edx
imul ecx, edi, 0x2d
sbb bh, byte [esi]
dec ebp
dec ebp
xchg dword [edi + 0x2feda5c], esp
lds edx, [eax + 0x64a6d201]
mov esi, 0xab4925d8
pushfd
pop dword [0x79005968]
adc byte [edx + 0x3b], cl
cld
outsd dx, dword [esi]
cmp al, ah
add al, byte [eax]
jne 0x40947a
invalid
loopne 0x40943c
cmp al, 0x94
rcl byte [ebx - 0x86ac950], cl
xchg edi, eax
jae 0x40940f
mov bh, dl
xlatb
jne 0x409423
sbb byte [ebx], ch
shl bl, 0x94
sbb al, 0x16
jae 0x4094a3
mov ecx, 0x1e0d1928
dec ebx
dec ebx
jo 0x40942f
idiv eax
inc edx
jae 0x40942c
inc edx
leave
fdivr dword [edi]
inc ebp
int1
and byte [0xa107f97d], bl
int 0x42
push 0xb3ac1774
push eax
fsub dword [ecx + 0x6c]
invalid
int3
jge 0x409564
fmul qword [0x96a3ba55]
mov ah, 0x22
push eax
xchg esi, eax
mov byte [0x2989ea3f], al
push ss
ljmp 0xfd7d:0x49162989
dec ecx
jge 0x409508
add eax, 0xb26d41ed
or ebx, esp
xchg dword [eax - 0x5f75ee3c], esp
xor eax, 0x3d2ca2a3
xor edx, dword [edi + 0x1668e50e]
sub bl, byte [0x1c1a08c9]
ja 0x4094b9
sbb ecx, edi
xor bl, byte [edx + edx*2]
cpuid
test byte [ecx], bh
loope 0x409504
jmp 0x409529
invalid