Function at 0x40721c
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff84
push esi
push edi
mov dword [ebp - 0x5c], 0
call fcn.00403471
mov byte [0x4161d1], 0xcb
push 0x208
push 2
call sub.KERNEL32.dll_GlobalAlloc
test eax, eax
je 0x4079f3
mov dword [ebp - 0x50], eax
mov byte [0x4161d1], 0xcc
push eax
call sub.KERNEL32.dll_GlobalLock
test eax, eax
je 0x4079eb
mov dword [ebp - 0x58], eax
xor eax, eax
mov ecx, 0x13
lea edi, [ebp - 0x4c]
pushfd
cld
rep stosd dword es:[edi], eax
popfd
mov dword [ebp - 0x4c], 0x4c
mov eax, dword [ebp + 8]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x40], str.QuickMirror_Files
mov dword [ebp - 0x34], 1
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x30], eax
mov word [eax], 0
mov dword [ebp - 0x2c], 0x104
mov esi, dword [0x41614a]
push esi
push 0
push 0
push 5
push 0
call sub.SHELL32.dll_SHGetFolderPathW
test eax, eax
je 0x4072c0
mov esi, dword [0x41620e]
mov dword [ebp - 0x20], esi
push 0x200
push dword [0x416146]
push 0x149
push dword [0x4161e3]
call fcn.004136a0
mov eax, dword [0x416146]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], 0x80824
mov dword [ebp - 0x10], 0x416fb0
mov dword [ebp - 8], 0x40b339
lea eax, [ebp - 0x4c]
push eax
call fcn.004136f6
test eax, eax
je 0x407a15
movzx esi, word [ebp - 0x14]
shl esi, 1
add esi, dword [ebp - 0x58]
mov byte [0x4161d1], 0xde
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
push esi
call fcn.004132ee
cmp eax, 0xffffffff
je 0x4079e3
mov dword [ebp - 0x54], eax
mov byte [0x4161d1], 0xdb
push 0
push 0x416a2c
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
push 0x200
push dword [0x416146]
push 0x165
push dword [0x4161e3]
call fcn.004136a0
push 2
push dword [0x416146]
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
movzx esi, word [0x4162f3]
mov edi, dword [0x416216]
mov ebx, 1
cmp esi, 1
jne 0x4073a9
inc ebx
mov edx, 0x416f72
cmp word [edi], 0
je 0x4073b6
mov edx, edi
push ebx
push edx
push dword [ebp - 0x54]
call fcn.004071a2
xor eax, eax
mov ecx, 0xffffffff
pushfd
cld
repne scasw ax, word es:[edi]
popfd
dec esi
jne 0x40739e
push 0x200
push dword [0x416146]
push 0x166
push dword [0x4161e3]
call fcn.004136a0
push 2
push dword [0x416146]
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
movzx esi, word [0x4162f3]
mov edi, dword [0x41622e]
mov ebx, 1
cmp esi, 1
jne 0x40741b
inc ebx
mov edx, str._To_
cmp word [edi], 0
je 0x407428
mov edx, edi
push ebx
push edx
push dword [ebp - 0x54]
call fcn.004071a2
xor eax, eax
mov ecx, 0xffffffff
pushfd
cld
repne scasw ax, word es:[edi]
popfd
dec esi
jne 0x407410
push 0x200
push dword [0x416146]
push 0x167
push dword [0x4161e3]
call fcn.004136a0
push 2
push dword [0x416146]
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
cmp word [0x416706], 0
je 0x407496
push 1
push 0x416706
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
mov ebx, 0x416d8e
cmp byte [0x41690e], 0
jne 0x4074a9
mov ebx, 0x416d92
push 1
push ebx
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
mov ebx, 0x416d8e
cmp byte [0x41690f], 0
jne 0x4074cf
mov ebx, 0x416d92
push 2
push ebx
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
push 0x200
push dword [0x416146]
push 0x168
push dword [0x4161e3]
call fcn.004136a0
push 2
push dword [0x416146]
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
mov eax, 0x31
add al, byte [0x416910]
mov dword [ebp - 0x7c], eax
push 1
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
mov eax, 0x31
add al, byte [0x416911]
mov dword [ebp - 0x7c], eax
push 1
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
mov eax, 0x31
add al, byte [0x416912]
mov dword [ebp - 0x7c], eax
push 1
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
mov ebx, 0x416d8e
cmp byte [0x416913], 0
jne 0x407594
mov ebx, 0x416d92
push 1
push ebx
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
mov ebx, 0x416d8e
cmp byte [0x416914], 0
jne 0x4075ba
mov ebx, 0x416d92
push 1
push ebx
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
mov ebx, 0x416d8e
cmp byte [0x416915], 0
jne 0x4075e0
mov ebx, 0x416d92
push 2
push ebx
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
push 0x200
push dword [0x416146]
push 0x169
push dword [0x4161e3]
call fcn.004136a0
push 2
push dword [0x416146]
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
mov eax, 0x31
add al, byte [0x416916]
mov dword [ebp - 0x7c], eax
push 1
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
mov eax, 0x31
add al, byte [0x416917]
mov dword [ebp - 0x7c], eax
push 1
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
push dword [0x416918]
push 0x416fd4
lea eax, [ebp - 0x7c]
push eax
call fcn.00413471
add esp, 0xc
push 1
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
push dword [0x41691c]
push 0x416fd4
lea eax, [ebp - 0x7c]
push eax
call fcn.00413471
add esp, 0xc
push 1
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
push dword [0x416920]
push 0x416fd4
lea eax, [ebp - 0x7c]
push eax
call fcn.00413471
add esp, 0xc
push 1
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
push dword [0x416924]
push 0x416fd4
lea eax, [ebp - 0x7c]
push eax
call fcn.00413471
add esp, 0xc
push 2
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
push 0x200
push dword [0x416146]
push 0x16a
push dword [0x4161e3]
call fcn.004136a0
push 2
push dword [0x416146]
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
mov eax, 0x31
add al, byte [0x416931]
mov dword [ebp - 0x7c], eax
push 1
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
mov eax, 0x31
add al, byte [0x416932]
mov dword [ebp - 0x7c], eax
push 1
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
mov eax, 0x31
add al, byte [0x416933]
mov dword [ebp - 0x7c], eax
push 1
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
mov ebx, 0x416d8e
cmp byte [0x416934], 0
jne 0x4077d4
mov ebx, 0x416d92
push 1
push ebx
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
mov ebx, 0x416d8e
cmp byte [0x416935], 0
jne 0x4077fa
mov ebx, 0x416d92
push 2
push ebx
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
push 0x200
push dword [0x416146]
push 0x16b
push dword [0x4161e3]
call fcn.004136a0
push 2
push dword [0x416146]
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
mov eax, 0x31
add al, byte [0x41692a]
mov dword [ebp - 0x7c], eax
push 1
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
mov ebx, 0x416d8e
cmp byte [0x41692c], 1
je 0x407877
mov ebx, 0x416d92
push 1
push ebx
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
movzx ebx, word [0x41692d]
push ebx
push 0x416fd4
lea eax, [ebp - 0x7c]
push eax
call fcn.00413471
add esp, 0xc
push 1
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
movzx ebx, word [0x41692f]
push ebx
push 0x416fd4
lea eax, [ebp - 0x7c]
push eax
call fcn.00413471
add esp, 0xc
push 1
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
mov eax, 0x31
add al, byte [0x41692b]
mov dword [ebp - 0x7c], eax
push 2
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
push 0x200
push dword [0x416146]
push 0x16c
push dword [0x4161e3]
call fcn.004136a0
push 2
push dword [0x416146]
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
movzx esi, word [0x416928]
mov edi, 0xd
mov ebx, 0x416d8e
shr esi, 1
jb 0x407959
mov ebx, 0x416d92
mov ecx, 1
cmp edi, ecx
jne 0x407963
inc ecx
push ecx
push ebx
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
dec edi
jne 0x40794b
push 0x200
push dword [0x416146]
push 0x16d
push dword [0x4161e3]
call fcn.004136a0
push 2
push dword [0x416146]
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
mov esi, dword [0x416252]
test esi, esi
je 0x4079d4
mov edi, dword [0x416246]
push 1
push edi
push dword [ebp - 0x54]
call fcn.004071a2
test eax, eax
je 0x4079db
dec esi
je 0x4079d4
xor eax, eax
mov ecx, 0xffffffff
pushfd
cld
repne scasw ax, word es:[edi]
popfd
jmp 0x4079b3
mov dword [ebp - 0x5c], 1
push dword [ebp - 0x54]
call sub.KERNEL32.dll_CloseHandle
push dword [ebp - 0x50]
call sub.KERNEL32.dll_GlobalUnlock
push dword [ebp - 0x50]
call sub.KERNEL32.dll_GlobalFree
cmp dword [ebp - 0x5c], 0
jne 0x407a0f
xor ebx, ebx
mov bl, byte [0x4161d1]
push 0x137
push ebx
push dword [ebp + 8]
call fcn.00408153
pop edi
pop esi
leave
ret 4
mov byte [0x4161d1], 0xdf
call sub.comdlg32.dll_CommDlgExtendedError
test eax, eax
jne 0x4079e3
mov dword [ebp - 0x5c], 1
jmp 0x4079e3