Function at 0x7a343ef0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x24c
mov edi, dword [ebp + 0xc]
test byte [section..data], 8
je 0x7a343fd3
mov eax, dword [ebp + 0x24]
xor esi, esi
test eax, eax
je 0x7a343f1a
mov eax, dword [ebp + 0x24]
mov esi, dword [eax]
mov eax, dword [ebp + 0x1c]
xor ebx, ebx
test eax, eax
je 0x7a343f28
mov eax, dword [ebp + 0x1c]
mov ebx, dword [eax]
mov eax, dword [ebp + 0x14]
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
call sym._wine_dbgstr_an
mov dword [esp + 4], 0xffffffff
mov dword [ebp - 0x220], eax
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
call sym._wine_dbgstr_an
mov dword [esp + 4], 0xffffffff
mov dword [esp], edi
mov dword [ebp - 0x21c], eax
call sym._wine_dbgstr_an
mov edx, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x1c]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x30], edx
mov edx, dword [ebp - 0x21c]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp - 0x220]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], str.flags___x_filename_s_windir_s_appdir_s_curdirlen_p__u__destdirlen_p__u__n
mov dword [esp + 0x10], 0x4bc
mov dword [esp + 0xc], str.VerFindFileA
mov dword [esp + 8], 0x7a3490cd
mov dword [esp + 4], 0x7a348000
mov dword [esp], 3
mov dword [esp + 0x34], esi
call sym._ros_dbg_log
lea esi, [ebp - 0x114]
mov dword [esp + 4], 0x104
mov dword [esp], esi
call sym._GetSystemDirectoryA_8
mov ebx, dword [ebp + 8]
sub esp, 8
and ebx, 1
je 0x7a344110
test edi, edi
je 0x7a344054
xor ecx, ecx
mov edx, edi
mov eax, esi
call sym._testFileExistenceA
mov dword [ebp - 0x220], esi
test eax, eax
je 0x7a344290
xor ecx, ecx
mov edx, edi
mov eax, esi
xor ebx, ebx
call sym._testFileExistenceA
mov dword [ebp - 0x21c], esi
test eax, eax
sete bl
mov esi, dword [ebp - 0x220]
xor ecx, ecx
mov edx, edi
mov eax, esi
call sym._testFileExistenceA
test eax, eax
jne 0x7a344315
mov dword [esp], esi
call dword [sym.imp.msvcrt.dll_strlen]
lea edi, [eax + 1]
jmp 0x7a344068
mov dword [ebp - 0x21c], esi
mov edi, ebx
xor ebx, ebx
mov dword [ebp - 0x220], 0x7a349024
mov esi, dword [ebp + 0x24]
test esi, esi
je 0x7a3440b5
mov ecx, dword [ebp + 0x20]
test ecx, ecx
je 0x7a3440b5
mov eax, dword [ebp - 0x21c]
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll_strlen]
lea esi, [eax + 1]
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
cmp eax, esi
jae 0x7a344094
or ebx, 4
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x21c]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x20]
mov dword [esp], eax
call sym._lstrcpynA_12
mov eax, dword [ebp + 0x24]
sub esp, 0xc
mov dword [eax], esi
mov edx, dword [ebp + 0x1c]
test edx, edx
je 0x7a3440f0
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x7a3440f0
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax]
cmp eax, edi
jae 0x7a3440cf
or ebx, 4
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x220]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x18]
mov dword [esp], eax
call sym._lstrcpynA_12
mov eax, dword [ebp + 0x1c]
sub esp, 0xc
mov dword [eax], edi
test byte [section..data], 8
jne 0x7a344190
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret 0x20
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x21c], eax
test eax, eax
je 0x7a344340
test edi, edi
je 0x7a344240
lea ebx, [ebp - 0x218]
mov dword [esp + 4], 0x104
mov dword [esp], ebx
call sym._GetWindowsDirectoryA_8
mov eax, dword [ebp - 0x21c]
mov edx, edi
xor ecx, ecx
sub esp, 8
call sym._testFileExistenceA
mov edx, dword [ebp - 0x21c]
mov dword [ebp - 0x220], edx
test eax, eax
je 0x7a3442c3
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, edi
test eax, eax
je 0x7a34417c
mov eax, dword [ebp + 0x14]
cmp byte [eax], 0
jne 0x7a344304
xor eax, eax
xor ebx, ebx
call sym._testFileExistenceA
test eax, eax
setne bl
jmp 0x7a34402d
mov eax, dword [ebp + 0x20]
mov dword [esp + 4], 0xffffffff
mov edi, str.VFF_BUFFTOOSMALL
mov dword [esp], eax
call sym._wine_dbgstr_an
mov dword [esp + 4], 0xffffffff
mov esi, eax
mov eax, dword [ebp + 0x18]
mov dword [esp], eax
call sym._wine_dbgstr_an
test bl, 4
je 0x7a344275
mov ecx, str.VFF_FILEINUSE
test bl, 2
je 0x7a344260
mov edx, str.VFF_CURNEDEST
test bl, 1
je 0x7a344254
mov dword [esp + 0x2c], esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], str.ret___u___s_s_s__curdir_s_destdir_s_n
mov dword [esp + 0x10], 0x505
mov dword [esp + 0xc], str.VerFindFileA
mov dword [esp + 8], 0x7a3490cd
mov dword [esp + 4], 0x7a348000
mov dword [esp], 3
call sym._ros_dbg_log
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret 0x20
mov dword [ebp - 0x220], 0x7a349024
mov edi, 1
jmp 0x7a344068
mov edx, 0x7a349024
jmp 0x7a3441de
mov ecx, 0x7a349024
mov edx, str.VFF_CURNEDEST
test bl, 1
jne 0x7a3441de
jmp 0x7a344254
mov edi, 0x7a349024
mov ecx, str.VFF_FILEINUSE
test bl, 2
jne 0x7a3441d4
jmp 0x7a344260
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x7a3442b4
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, edi
call sym._testFileExistenceA
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x220], ecx
test eax, eax
jne 0x7a344015
mov dword [ebp - 0x220], 0x7a349024
jmp 0x7a344015
xor ecx, ecx
mov edx, edi
mov eax, ebx
call sym._testFileExistenceA
mov dword [ebp - 0x220], ebx
test eax, eax
jne 0x7a344165
xor ecx, ecx
mov edx, edi
mov eax, esi
call sym._testFileExistenceA
mov dword [ebp - 0x220], 0x7a349024
test eax, eax
je 0x7a344165
mov dword [ebp - 0x220], esi
jmp 0x7a344165
call sym._testFileExistenceA
xor ebx, ebx
test eax, eax
sete bl
jmp 0x7a34402d
mov edx, edi
mov edi, dword [ebp - 0x220]
mov ecx, 1
mov eax, edi
call sym._testFileExistenceA
test eax, eax
je 0x7a344350
mov dword [esp], edi
call dword [sym.imp.msvcrt.dll_strlen]
lea edi, [eax + 1]
jmp 0x7a344068
mov dword [ebp - 0x21c], 0x7a349024
jmp 0x7a344121
mov eax, dword [ebp - 0x220]
or ebx, 2
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll_strlen]
lea edi, [eax + 1]
jmp 0x7a344068