Function at 0x405430
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, 0x4585c0
push esi
push ebx
lea ebx, [ebp - 0x12a]
sub esp, 0x26c
mov dword [esp + 4], 0x8a
mov dword [esp], str..._wine_dlls_msvcrt_tests_data.c
call fcn.0044c860
lea eax, [ebp - 0x22e]
mov dword [esp], 0x104
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_GetTempPathA]
sub esp, 8
test eax, eax
setne al
mov dword [esp + 4], 0x4585a1
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
lea eax, [ebp - 0x240]
mov dword [ebp - 0x240], 0
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x234]
mov dword [esp + 8], eax
lea eax, [ebp - 0x23c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x248]
mov dword [esp], eax
mov eax, dword [sym.imp.msvcrt.dll___getmainargs]
mov dword [esp + 0xc], 0
mov dword [ebp - 0x250], eax
call eax
mov dword [esp + 4], 0x8e
mov dword [esp], str..._wine_dlls_msvcrt_tests_data.c
call fcn.0044c860
mov eax, dword [ebp - 0x248]
mov dword [esp + 4], str.argc___d_n
cmp eax, 4
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x8f
mov dword [esp], str..._wine_dlls_msvcrt_tests_data.c
call fcn.0044c860
mov eax, dword [ebp - 0x23c]
mov ecx, 5
mov eax, dword [eax + 4]
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
mov dword [esp + 8], eax
mov dword [esp + 4], str.argv_1____s_n
seta dl
sbb dl, 0
xor eax, eax
test dl, dl
sete al
mov dword [esp], eax
call fcn.0044cad0
lea eax, [ebp - 0x22e]
mov dword [esp + 4], str._s
mov dword [esp + 8], eax
mov dword [esp], ebx
call fcn.00405400
mov dword [esp + 4], 0x91
mov dword [esp], str..._wine_dlls_msvcrt_tests_data.c
call fcn.0044c860
mov eax, dword [ebp - 0x23c]
mov edi, dword [sym.imp.msvcrt.dll_strcmp]
mov esi, dword [eax + 8]
mov dword [ebp - 0x24c], edi
mov dword [esp + 4], ebx
mov dword [esp], esi
call edi
mov dword [esp + 8], esi
test eax, eax
mov dword [esp + 4], str.argv_2____s_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
lea eax, [ebp - 0x22e]
mov dword [esp + 4], str._swine_test_
mov dword [esp + 8], eax
mov dword [esp], ebx
call fcn.00405400
mov dword [esp + 4], 0x93
mov dword [esp], str..._wine_dlls_msvcrt_tests_data.c
call fcn.0044c860
mov eax, dword [ebp - 0x23c]
mov esi, dword [eax + 0xc]
mov dword [esp + 4], ebx
mov dword [esp], esi
call edi
mov dword [esp + 8], esi
test eax, eax
mov dword [esp + 4], str.argv_3____s_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x94
mov dword [esp], str..._wine_dlls_msvcrt_tests_data.c
call fcn.0044c860
mov eax, dword [ebp - 0x23c]
mov dword [esp + 4], str.argv_4____NULL_n
mov edi, dword [eax + 0x10]
xor eax, eax
test edi, edi
sete al
mov dword [esp], eax
call fcn.0044cad0
mov eax, dword [0x46b2e0]
test eax, eax
je 0x405ae1
mov esi, dword [0x46b2dc]
test esi, esi
je 0x405ae1
call eax
mov eax, dword [eax]
mov dword [ebp - 0x244], eax
call dword [0x46b2dc]
mov eax, dword [eax]
mov dword [esp + 4], 0x99
mov dword [esp], str..._wine_dlls_msvcrt_tests_data.c
mov dword [ebp - 0x238], eax
call fcn.0044c860
mov eax, dword [ebp - 0x244]
mov dword [esp + 4], str.__p___argc_____d_n
cmp eax, 4
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x9a
mov dword [esp], str..._wine_dlls_msvcrt_tests_data.c
call fcn.0044c860
mov eax, dword [ebp - 0x238]
mov edx, dword [ebp - 0x23c]
mov dword [esp + 4], str.__p___argv_____p__expected__p_n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
lea eax, [ebp - 0x240]
mov dword [esp + 0xc], 1
mov edi, 0x4585c0
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x234]
mov dword [esp + 8], eax
lea eax, [ebp - 0x23c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x248]
mov dword [esp], eax
mov eax, dword [ebp - 0x250]
mov dword [ebp - 0x240], 0
call eax
mov dword [esp + 4], 0xa0
mov dword [esp], str..._wine_dlls_msvcrt_tests_data.c
call fcn.0044c860
mov eax, dword [ebp - 0x248]
mov dword [esp + 4], str.argc___d_n
cmp eax, 5
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0xa1
mov dword [esp], str..._wine_dlls_msvcrt_tests_data.c
call fcn.0044c860
mov eax, dword [ebp - 0x23c]
mov ecx, 5
mov eax, dword [eax + 4]
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
mov dword [esp + 8], eax
mov dword [esp + 4], str.argv_1____s_n
seta dl
sbb dl, 0
xor eax, eax
test dl, dl
sete al
mov dword [esp], eax
call fcn.0044cad0
lea eax, [ebp - 0x22e]
mov dword [esp + 4], str._s
mov dword [esp + 8], eax
mov dword [esp], ebx
call fcn.00405400
mov dword [esp + 4], 0xa3
mov dword [esp], str..._wine_dlls_msvcrt_tests_data.c
call fcn.0044c860
mov eax, dword [ebp - 0x23c]
mov esi, dword [eax + 8]
mov eax, dword [ebp - 0x24c]
mov dword [esp + 4], ebx
mov dword [esp], esi
call eax
mov dword [esp + 8], esi
test eax, eax
mov dword [esp + 4], str.argv_2____s_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
lea eax, [ebp - 0x22e]
mov dword [esp + 4], 0x458677
mov dword [esp + 8], eax
mov dword [esp], ebx
call fcn.00405400
mov eax, dword [ebp - 0x23c]
mov esi, dword [eax + 0xc]
mov dword [esp], esi
call dword [sym.imp.msvcrt.dll_strlen]
cmp byte [esi + eax - 1], 0x61
je 0x405b10
mov dword [esp + 4], 0xaa
mov dword [esp], str..._wine_dlls_msvcrt_tests_data.c
call fcn.0044c860
mov eax, dword [ebp - 0x23c]
mov edi, dword [ebp - 0x24c]
mov esi, dword [eax + 0x10]
mov dword [esp + 4], ebx
mov dword [esp], esi
call edi
mov dword [esp + 8], esi
test eax, eax
mov dword [esp + 4], str.argv_4____s_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
lea eax, [ebp - 0x22e]
mov dword [esp + 4], 0x458685
mov dword [esp + 8], eax
mov dword [esp], ebx
call fcn.00405400
mov dword [esp + 4], 0xac
mov dword [esp], str..._wine_dlls_msvcrt_tests_data.c
call fcn.0044c860
mov eax, dword [ebp - 0x23c]
mov esi, dword [eax + 0xc]
mov dword [esp + 4], ebx
mov dword [esp], esi
call edi
mov dword [esp + 8], esi
mov dword [esp + 4], str.argv_3____s_n
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0xae
mov dword [esp], str..._wine_dlls_msvcrt_tests_data.c
call fcn.0044c860
mov eax, dword [ebp - 0x23c]
mov dword [esp + 4], str.argv_5____NULL_n
mov ecx, dword [eax + 0x14]
xor eax, eax
test ecx, ecx
sete al
mov dword [esp], eax
call fcn.0044cad0
mov eax, dword [0x46b2e0]
test eax, eax
je 0x4059db
mov edx, dword [0x46b2dc]
test edx, edx
je 0x4059db
call eax
mov eax, dword [eax]
mov dword [ebp - 0x244], eax
call dword [0x46b2dc]
mov eax, dword [eax]
mov dword [esp + 4], 0xb3
mov dword [esp], str..._wine_dlls_msvcrt_tests_data.c
mov dword [ebp - 0x238], eax
call fcn.0044c860
mov edx, dword [ebp - 0x248]
mov eax, dword [ebp - 0x244]
mov dword [esp + 4], str.__p___argc_____d__expected__d_n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0xb4
mov dword [esp], str..._wine_dlls_msvcrt_tests_data.c
call fcn.0044c860
mov eax, dword [ebp - 0x238]
mov edx, dword [ebp - 0x23c]
mov dword [esp + 4], str.__p___argv_____p__expected__p_n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
lea eax, [ebp - 0x22e]
mov dword [esp], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], str._swine_test_b
call fcn.00405400
mov dword [esp], ebx
mov dword [esp + 4], 0x4586e7
call dword [sym.imp.msvcrt.dll_fopen]
mov dword [esp + 4], 0xb9
mov dword [esp], str..._wine_dlls_msvcrt_tests_data.c
mov esi, eax
call fcn.0044c860
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.fopen__s__failed:__d_n
mov dword [esp + 0xc], eax
xor eax, eax
test esi, esi
setne al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp], esi
call dword [sym.imp.msvcrt.dll_fclose]
lea eax, [ebp - 0x240]
mov dword [ebp - 0x240], 0
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x234]
mov dword [esp + 8], eax
lea eax, [ebp - 0x238]
mov dword [esp + 4], eax
lea eax, [ebp - 0x244]
mov dword [esp], eax
mov eax, dword [ebp - 0x250]
mov dword [esp + 0xc], 1
call eax
mov dword [esp + 4], 0xbd
mov dword [esp], str..._wine_dlls_msvcrt_tests_data.c
call fcn.0044c860
mov eax, dword [ebp - 0x248]
mov edx, dword [ebp - 0x244]
mov dword [esp + 4], str.new_argc___d__expected__d_n
add eax, 1
mov dword [esp + 8], edx
cmp eax, edx
mov dword [esp + 0xc], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp], ebx
call dword [sym.imp.msvcrt.dll__unlink]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0x9c
mov dword [esp], str..._wine_dlls_msvcrt_tests_data.c
call fcn.0044c860
mov dword [esp], str.__p___argc_or___p___argv_is_not_available_n
call fcn.0044cbc0
jmp 0x4056f3
mov dword [esp + 4], 0xa6
mov dword [esp], str..._wine_dlls_msvcrt_tests_data.c
call fcn.0044c860
mov eax, dword [ebp - 0x23c]
mov edi, dword [ebp - 0x24c]
mov esi, dword [eax + 0xc]
mov dword [esp + 4], ebx
mov dword [esp], esi
call edi
mov dword [esp + 8], esi
test eax, eax
mov dword [esp + 4], str.argv_3____s_n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
lea eax, [ebp - 0x22e]
mov dword [esp + 4], 0x458685
mov dword [esp + 8], eax
mov dword [esp], ebx
call fcn.00405400
mov dword [esp + 4], 0xa8
mov dword [esp], str..._wine_dlls_msvcrt_tests_data.c
call fcn.0044c860
mov eax, dword [ebp - 0x23c]
mov esi, dword [eax + 0x10]
mov dword [esp + 4], ebx
mov dword [esp], esi
call edi
mov dword [esp + 8], esi
mov dword [esp + 4], str.argv_4____s_n
jmp 0x4058e4