Function at 0x690540d0
Capabilities:
Get common file path
Get disk information
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x55c
mov dword [ebp - 0x52c], eax
mov dword [ebp - 0x544], edx
mov dword [ebp - 0x53c], ecx
test ecx, ecx
jne 0x69054100
mov eax, dword [ebp - 0x53c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, ecx
mov esi, eax
mov dword [esp + 8], ecx
mov dword [esp + 4], str.FILEDLG_OFN
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetPropA]
mov eax, dword [edi + 0x1c]
mov dword [edi], esi
sub esp, 0xc
mov dword [ebp - 0x538], eax
test byte [0x6907605c], 8
jne 0x69054849
mov edi, dword [ebp - 0x538]
mov eax, dword [edi + 0x30]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x52c]
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetWindowTextW]
mov ebx, dword [edi + 0x10]
sub esp, 8
test ebx, ebx
je 0x69054839
test byte [0x6907605c], 8
jne 0x6905495b
cmp word [ebx], 0
je 0x69054839
mov eax, dword [sym.imp.user32.dll_SendDlgItemMessageW]
xor edi, edi
mov dword [ebp - 0x530], eax
lea esi, [esi]
mov ecx, dword [ebp - 0x538]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x143
add eax, edi
mov dword [esp + 4], 0x470
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x52c]
mov dword [esp], eax
mov eax, dword [ebp - 0x530]
call eax
sub esp, 0x14
cmp word [ebx], 0
mov edx, eax
je 0x690546d0
mov eax, ebx
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x690541d8
sub eax, ebx
mov esi, ebx
sar eax, 1
lea edi, [edi + eax + 1]
lea esi, [esi]
nop
add esi, 2
cmp word [esi], 0
jne 0x690541f0
sub esi, ebx
add esi, 2
add esi, ebx
test byte [0x6907605c], 8
jne 0x69054400
mov eax, dword [ebp - 0x52c]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edx
mov dword [esp], eax
mov eax, dword [ebp - 0x530]
mov dword [esp + 8], 0x151
mov dword [esp + 4], 0x470
call eax
sub esp, 0x14
cmp word [esi], 0
je 0x690546e0
mov eax, esi
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x69054248
sub eax, esi
mov ebx, esi
sar eax, 1
lea edi, [edi + eax + 1]
lea esi, [esi]
nop
add ebx, 2
cmp word [ebx], 0
jne 0x69054260
sub ebx, esi
add ebx, 2
add ebx, esi
cmp word [ebx], 0
jne 0x69054188
mov eax, dword [ebp - 0x538]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x69054460
cmp word [eax], 0
je 0x69054460
mov ebx, eax
xor edi, edi
lea esi, [esi]
lea eax, [eax + edi*2]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x52c]
mov dword [esp + 8], 0x143
mov dword [esp], eax
mov eax, dword [ebp - 0x530]
mov dword [esp + 4], 0x470
call eax
sub esp, 0x14
cmp word [ebx], 0
mov edx, eax
je 0x69054700
mov eax, ebx
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x690542e8
sub eax, ebx
mov esi, ebx
sar eax, 1
lea edi, [edi + eax + 1]
lea esi, [esi]
nop
add esi, 2
cmp word [esi], 0
jne 0x69054300
sub esi, ebx
add esi, 2
add esi, ebx
test byte [0x6907605c], 8
jne 0x690543a0
mov eax, dword [ebp - 0x52c]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edx
mov dword [esp], eax
mov eax, dword [ebp - 0x530]
mov dword [esp + 8], 0x151
mov dword [esp + 4], 0x470
call eax
sub esp, 0x14
cmp word [esi], 0
je 0x690546f0
mov eax, esi
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x69054358
sub eax, esi
mov ebx, esi
sar eax, 1
lea edi, [edi + eax + 1]
lea esi, [esi]
nop
add ebx, 2
cmp word [ebx], 0
jne 0x69054370
sub ebx, esi
add ebx, 2
add ebx, esi
cmp word [ebx], 0
je 0x69054460
mov eax, dword [ebp - 0x538]
mov eax, dword [eax + 0xc]
jmp 0x690542a0
mov eax, esi
mov dword [ebp - 0x540], edx
call fcn.69052940
mov dword [ebp - 0x534], eax
mov eax, ebx
call fcn.69052940
mov ecx, dword [ebp - 0x534]
mov dword [esp + 0xc], str.add_str_s_associated_to__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 8], str.FD31_WMInitDialog
mov dword [esp + 4], 0x6907605c
mov dword [esp], 3
call fcn.69052bd0
mov edx, dword [ebp - 0x540]
jmp 0x6905431d
mov eax, esi
mov dword [ebp - 0x540], edx
call fcn.69052940
mov dword [ebp - 0x534], eax
mov eax, ebx
call fcn.69052940
mov ecx, dword [ebp - 0x534]
mov dword [esp + 0xc], str.add_str_s_associated_to__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 8], str.FD31_WMInitDialog
mov dword [esp + 4], 0x6907605c
mov dword [esp], 3
call fcn.69052bd0
mov edx, dword [ebp - 0x540]
jmp 0x6905420d
mov eax, dword [ebp - 0x538]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x6905478c
sub eax, 1
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x52c]
mov dword [esp + 0x10], 0
mov dword [esp], eax
mov eax, dword [ebp - 0x530]
mov dword [esp + 8], 0x14e
mov dword [esp + 4], 0x470
call eax
mov eax, dword [ebp - 0x538]
movzx edi, byte [0x6907605c]
sub esp, 0x14
mov eax, dword [eax + 0x1c]
and edi, 8
test eax, eax
je 0x69054710
cmp word [eax], 0
je 0x69054710
mov ecx, edi
test cl, cl
jne 0x690547fe
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x52c]
lea esi, [ebp - 0x418]
mov dword [esp + 4], 0x480
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetDlgItemTextW]
sub esp, 0xc
mov eax, dword [ebp - 0x52c]
xor ebx, ebx
mov dword [esp + 0x10], 0xc000
mov word [ebp - 0x418], bx
lea ebx, [ebp - 0x1c]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x471
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [sym.imp.user32.dll_DlgDirListComboBoxW]
mov eax, dword [ebp - 0x538]
sub esp, 0x14
mov edx, dword [eax + 0x2c]
mov eax, esi
test edx, edx
je 0x690547a3
lea esi, [esi]
movzx ecx, word [edx]
test cx, cx
je 0x6905455e
add eax, 2
add edx, 2
mov word [eax - 2], cx
cmp eax, ebx
jne 0x69054548
xor ecx, ecx
mov word [eax], cx
cmp word [ebp - 0x418], 0
mov eax, esi
je 0x690545b0
nop
add eax, 2
cmp word [eax], 0
jne 0x69054570
sub eax, esi
test eax, eax
jle 0x690545b0
sar eax, 1
movzx edx, word [ebp + eax*2 - 0x41a]
cmp dx, 0x3a
je 0x690545b0
cmp dx, 0x5c
je 0x690545b0
mov edx, 0x5c
xor ecx, ecx
mov word [ebp + eax*2 - 0x418], dx
mov word [ebp + eax*2 - 0x416], cx
lea esi, [esi]
mov edx, dword [ebp - 0x52c]
mov eax, dword [ebp - 0x538]
mov ecx, esi
call fcn.690530a0
test eax, eax
je 0x69054887
lea eax, [ebp - 0x51c]
mov ebx, 0x61
mov esi, 0xffffffff
mov dword [ebp - 0x520], 0x5c3a61
mov dword [esp + 4], eax
mov dword [esp], 0x104
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryA]
mov edi, dword [sym.imp.ucrtbase.dll_toupper]
sub esp, 8
jmp 0x69054610
add ebx, 1
cmp bl, 0x7b
je 0x69054654
lea eax, [ebp - 0x520]
mov byte [ebp - 0x520], bl
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetDriveTypeA]
sub esp, 4
cmp eax, 2
movsx eax, byte [ebp - 0x520]
sbb esi, 0xffffffff
mov dword [esp], eax
call edi
mov dword [ebp - 0x534], eax
movsx eax, byte [ebp - 0x51c]
mov dword [esp], eax
call edi
cmp dword [ebp - 0x534], eax
jne 0x69054608
mov eax, dword [ebp - 0x52c]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
mov dword [esp], eax
mov eax, dword [ebp - 0x530]
mov dword [esp + 8], 0x14e
mov dword [esp + 4], 0x471
call eax
mov eax, dword [ebp - 0x538]
sub esp, 0x14
mov eax, dword [eax + 0x34]
test al, 0x10
je 0x6905491f
test al, 4
jne 0x690548ec
mov eax, dword [ebp - 0x53c]
mov ebx, dword [eax + 4]
test ebx, ebx
jne 0x69054988
mov dword [ebp - 0x53c], 1
mov eax, dword [ebp - 0x53c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
add edi, 1
mov esi, 2
jmp 0x690541fe
add edi, 1
mov ebx, 2
jmp 0x6905426e
add edi, 1
mov ebx, 2
jmp 0x6905437e
add edi, 1
mov esi, 2
jmp 0x6905430e
mov eax, dword [ebp - 0x538]
lea esi, [ebp - 0x418]
lea ebx, [ebp - 0x1a]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x534], ecx
movzx ecx, word [ebp - 0x534]
sub ecx, 1
movzx ecx, cx
call fcn.69052720
mov edx, eax
mov eax, esi
lea esi, [esi]
movzx ecx, word [edx]
test cx, cx
je 0x6905475e
add eax, 2
add edx, 2
mov word [eax - 2], cx
cmp eax, ebx
jne 0x69054748
xor edx, edx
mov word [eax], dx
mov eax, edi
test al, al
jne 0x690547b1
mov eax, dword [ebp - 0x52c]
mov dword [esp + 8], esi
mov dword [esp + 4], 0x480
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetDlgItemTextW]
sub esp, 0xc
jmp 0x690544f7
mov ecx, dword [ebp - 0x538]
mov esi, dword [ecx + 0x10]
test esi, esi
je 0x690547f2
mov eax, 0xffffffff
jmp 0x69054474
xor eax, eax
mov word [ebp - 0x418], ax
jmp 0x690545b0
mov eax, esi
call fcn.69052940
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x538]
mov eax, dword [eax + 0x18]
mov dword [esp + 0xc], str.nFilterIndex___ld__SetText_of_edt1_to__s_n
mov dword [esp + 8], str.FD31_WMInitDialog
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x6907605c
mov dword [esp], 3
call fcn.69052bd0
jmp 0x69054769
mov dword [ecx + 0x18], 1
jmp 0x69054474
call fcn.69052940
mov dword [esp + 0xc], str.SetText_of_edt1_to__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.FD31_WMInitDialog
mov dword [esp + 4], 0x6907605c
mov dword [esp], 3
call fcn.69052bd0
mov eax, dword [ebp - 0x538]
mov eax, dword [eax + 0x1c]
jmp 0x690544d3
mov eax, dword [sym.imp.user32.dll_SendDlgItemMessageW]
mov dword [ebp - 0x530], eax
jmp 0x6905427a
mov edi, eax
mov eax, dword [eax + 0x2c]
call fcn.69052940
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0x34]
mov dword [esp + 0xc], str.flags_lx_initialdir_s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.FD31_WMInitDialog
mov dword [esp + 4], 0x6907605c
mov dword [esp], 3
call fcn.69052bd0
jmp 0x69054134
mov edx, dword [ebp - 0x52c]
mov eax, dword [ebp - 0x538]
xor edi, edi
mov ecx, esi
mov word [ebp - 0x418], di
call fcn.690530a0
test eax, eax
jne 0x690545cb
test byte [0x6907605c], 4
je 0x690545cb
mov eax, esi
call fcn.69052940
mov dword [esp + 0xc], str.Couldnt_read_initial_directory__s__n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.FD31_WMInitDialog
mov dword [esp + 4], 0x6907605c
mov dword [esp], 2
call fcn.69052bd0
jmp 0x690545cb
mov eax, dword [ebp - 0x52c]
mov dword [esp + 4], 0x410
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetDlgItem]
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.user32.dll_ShowWindow]
sub esp, 8
jmp 0x6905469d
mov eax, dword [ebp - 0x52c]
mov dword [esp + 4], 0x40e
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetDlgItem]
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.user32.dll_ShowWindow]
mov eax, dword [ebp - 0x538]
sub esp, 8
mov eax, dword [eax + 0x34]
jmp 0x69054695
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], str.lpstrCustomFilter___p_n
mov dword [esp + 8], str.FD31_WMInitDialog
mov dword [esp + 4], 0x6907605c
mov dword [esp], 3
call fcn.69052bd0
jmp 0x6905416b
mov edi, eax
mov eax, dword [eax + 0x10]
mov ecx, dword [ebp - 0x544]
mov edx, 0x110
mov dword [esp], eax
mov eax, edi
call fcn.69052e10
mov dword [ebp - 0x53c], eax
jmp 0x690540f2