Function at 0x4714f0
Capabilities:
Get common file path

Disassembly:
sub esp, 0x524
mov eax, dword [0x4951c0]
xor eax, esp
mov dword [esp + 0x51c], eax
mov eax, dword [esp + 0x528]
push ebx
push ebp
push esi
push edi
mov esi, ecx
push 0
push esi
mov dword [esp + 0x18], eax
call fcn.00408562
add esp, 8
test eax, eax
je 0x4715a1
lea edx, [esp + 0x30]
mov eax, esi
sub edx, esi
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x471530
lea ecx, [esp + 0x30]
push ecx
call fcn.00474a50
add esp, 4
test eax, eax
jne 0x471583
cmp dword [0x58fe3c], eax
jne 0x471867
mov eax, dword [0x49a31c]
lea edx, [esp + 0x30]
push edx
push 0x48ad00
push eax
call fcn.004081b3
mov ecx, dword [0x49a31c]
add esp, 0xc
push ecx
push 0x48ad1c
call fcn.00458fe0
add esp, 8
mov dword [0x58f968], 1
xor eax, eax
nop
mov cl, byte [esp + eax + 0x30]
mov byte [eax + 0x49a538], cl
inc eax
test cl, cl
jne 0x471590
jmp 0x471606
cmp byte [esi + 1], 0x3a
je 0x471606
lea edx, [esp + 0x30]
push edx
push 0x100
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
cmp byte [esp + 0x33], 0
je 0x4715d4
lea edi, [esp + 0x30]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4715c3
mov ax, word [0x48ad2c]
mov word [edi], ax
mov eax, esi
mov edx, esi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4715d8
lea edi, [esp + 0x30]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4715e6
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [0x58f968], 0
mov edx, dword [0x49a31c]
lea ecx, [esp + 0x30]
push ecx
push str.open___s__type_avivideo_alias_myavi_wait
push edx
call fcn.004081b3
mov eax, dword [0x49a31c]
mov ebx, dword [sym.imp.WINMM.dll_mciSendStringA]
add esp, 0xc
push 0
push 0
push 0
push eax
call ebx
mov ebp, dword [sym.imp.WINMM.dll_mciGetErrorStringA]
test eax, eax
je 0x471662
push 0x100
lea ecx, [esp + 0x134]
push ecx
push eax
call ebp
lea edx, [esp + 0x130]
push edx
push str.AVI_Error_1
call fcn.00458fe0
add esp, 8
push 0
push 0
push 0
push str.set_myavi_audio_on_video_on_wait
call ebx
test eax, eax
je 0x4716a9
push 0
push 0
push 0
push str.set_myavi_video_on_wait
call ebx
test eax, eax
je 0x4716a9
push 0x100
lea ecx, [esp + 0x134]
push ecx
push eax
call ebp
lea edx, [esp + 0x130]
push edx
push str.AVI_Error_2
call fcn.00458fe0
add esp, 8
cmp dword [0x4965ec], 0x280
mov ecx, 0xa
lea edi, [esp + 0x330]
mov esi, str.put_myavi_destination_at_0_0_640_480_wait
je 0x4716cb
mov esi, str.put_myavi_destination_at_0_0_800_600_wait
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
xor esi, esi
push esi
push esi
push esi
lea eax, [esp + 0x33c]
push eax
call ebx
cmp eax, esi
je 0x471707
push 0x100
lea ecx, [esp + 0x134]
push ecx
push eax
call ebp
lea edx, [esp + 0x130]
push edx
push str.AVI_Error_3
call fcn.00458fe0
add esp, 8
mov eax, dword [0x49ab6c]
mov ecx, dword [eax + 0x10]
mov edx, dword [0x49a31c]
push ecx
push str.window_myavi_handle__lu_wait
push edx
call fcn.004081b3
mov eax, dword [0x49a31c]
add esp, 0xc
push esi
push esi
push esi
push eax
call ebx
neg eax
sbb eax, eax
neg eax
je 0x47175c
push 0x100
lea ecx, [esp + 0x134]
push ecx
push eax
call ebp
lea edx, [esp + 0x130]
push edx
push str.AVI_Error_4
call fcn.00458fe0
add esp, 8
push esi
push esi
push esi
push str.play_myavi_from_0
mov dword [0x58f960], 1
call ebx
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
mov ebp, dword [sym.imp.USER32.dll_PeekMessageA]
lea esp, [esp]
push 1
push esi
push esi
push esi
lea eax, [esp + 0x24]
push eax
call ebp
test eax, eax
je 0x4717c6
mov edx, dword [0x49ac78]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [eax + 0x10]
push edx
push ecx
call dword [sym.imp.USER32.dll_TranslateAcceleratorA]
test eax, eax
jne 0x4717b9
lea edx, [esp + 0x14]
push edx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x4717ca
push 5
call edi
cmp dword [0x58faec], esi
je 0x4717db
cmp dword [esp + 0x53c], esi
jne 0x471832
push esi
push 0x100
lea ecx, [esp + 0x238]
push ecx
push str.status_myavi_mode_wait
call ebx
mov ecx, 0x48ae6c
lea eax, [esp + 0x230]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x471820
test dl, dl
je 0x47181c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x471820
add eax, 2
add ecx, 2
test dl, dl
jne 0x471800
xor eax, eax
jmp 0x471825
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, esi
je 0x471832
push 0x32
call edi
jmp 0x471780
push esi
push esi
push esi
push str.stop_myavi_wait
call ebx
push esi
push esi
push esi
push str.close_myavi_wait
call ebx
mov dword [0x58f960], esi
cmp dword [0x58f968], esi
je 0x471867
push 0x49a538
call fcn.004087dd
add esp, 4
mov dword [0x58f968], esi
mov ecx, dword [esp + 0x52c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
mov eax, 1
call fcn.00407f40
add esp, 0x524
ret 8