Function at 0x14007a220
Capabilities:
Check if file exists
Get file attributes
Set current directory

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push r12
push r13
push r15
lea rbp, [rsp - 0x21a40]
mov eax, 0x21b40
call fcn.1401119a0
sub rsp, rax
cmp dword [0x14016075c], 4
mov rsi, r9
mov r13, qword [0x140162ac0]
mov r10, r8
mov qword [rsp + 0x60], r13
mov r15, rdx
mov r12, rcx
jl 0x14007a28e
lea r9, [0x14012046c]
xor r8d, r8d
lea rdx, str.The_maximum_number_of_File_Dialogs_has_been_reached.
call fcn.140062de0
add rsp, 0x21b40
pop r15
pop r13
pop r12
pop rsi
pop rbp
ret
mov qword [rsp + 0x21b80], rbx
mov qword [rsp + 0x21b38], rdi
xor edi, edi
mov qword [rsp + 0x21b30], r14
mov word [rbp + 0x1a30], di
lea ebx, [rdi + 0x5c]
test r10, r10
je 0x14007a3da
cmp word [r8], di
je 0x14007a3da
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp word [r8 + rax*2], di
jne 0x14007a2d0
cmp rax, 0x104
jb 0x14007a2f7
mov r8d, 0x104
lea rdx, [rbp + 0x20]
mov rcx, r10
call qword [sym.imp.KERNEL32.dll_GetShortPathNameW]
jmp 0x14007a310
mov r8d, 0x103
lea rcx, [rbp + 0x20]
mov rdx, r10
call fcn.1401020c4
mov word [rbp + 0x226], di
mov r8d, 3
lea rdx, [0x1401421b0]
lea rcx, [rbp + 0x20]
call fcn.140102b68
test eax, eax
lea rcx, [rbp + 0x20]
sete r14b
test eax, eax
jne 0x14007a374
lea edx, [rax + 0x7d]
call fcn.1400f0a4c
test rax, rax
je 0x14007a3de
cmp word [rax + 2], di
je 0x14007a3de
lea rcx, [rbp + 0x20]
mov rax, 0xffffffffffffffff
nop word [rax + rax]
cmp word [rcx + rax*2 + 2], di
lea rax, [rax + 1]
jne 0x14007a360
cmp word [rbp + rax*2 + 0x1e], bx
je 0x14007a3de
jmp 0x14007a383
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14007a383
test al, 0x10
jne 0x14007a3de
mov edx, ebx
lea rcx, [rbp + 0x20]
call fcn.1400f0974
mov rbx, rax
test rax, rax
je 0x14007a3b8
lea rdx, [rax + 2]
mov r8d, 0xfffe
lea rcx, [rbp + 0x1a30]
call fcn.1401020c4
mov word [rbp + 0x21a2c], di
mov word [rbx], di
jmp 0x14007a3de
test r14b, r14b
jne 0x14007a3de
mov r8d, 0xfffe
lea rdx, [rbp + 0x20]
lea rcx, [rbp + 0x1a30]
call fcn.1401020c4
mov word [rbp + 0x21a2c], di
mov word [rbp + 0x20], di
test rsi, rsi
je 0x14007a406
cmp word [rsi], di
je 0x14007a406
mov r8d, 0x3ff
lea rcx, [rbp + 0xa30]
mov rdx, rsi
call fcn.1401020c4
mov word [rbp + 0x122e], di
jmp 0x14007a425
mov r9, qword [0x140164880]
lea r8, str.Select_File____s
mov edx, 0x400
lea rcx, [rbp + 0xa30]
call fcn.1400d08d0
mov rbx, qword [rbp + 0x21a90]
mov word [rbp + 0x1230], di
mov word [rbp + 0x230], di
cmp word [rbx], di
je 0x14007a666
mov edx, 0x28
mov rcx, rbx
call fcn.1400f0a4c
lea rcx, [rbp + 0x230]
mov r8d, 0x3ff
test rax, rax
je 0x14007a499
lea rdx, [rax + 2]
call fcn.1401020c4
mov edx, 0x29
mov word [rbp + 0xa2e], di
lea rcx, [rbp + 0x230]
call fcn.1400f0974
test rax, rax
je 0x14007a48d
mov word [rax], di
jmp 0x14007a4a8
mov word [rbp + 0x230], di
jmp 0x14007a666
mov rdx, rbx
call fcn.1401020c4
mov word [rbp + 0xa2e], di
cmp word [rbp + 0x230], di
je 0x14007a666
mov r14d, 0xffffffff
lea rax, [rbp + 0x230]
mov rbx, 0xffffffffffffffff
nop dword [rax]
inc rbx
cmp word [rax + rbx*2], di
jne 0x14007a4d0
mov qword [rsp + 0x58], rdi
mov r15, rdi
mov qword [rsp + 0x68], rdi
cmp rbx, 0x1388
jb 0x14007a707
mov esi, edi
lea r12, [rbp + 0x230]
nop dword [rax]
lea rdx, [0x14013fd14]
mov rcx, r12
call fcn.1400f0d44
mov rcx, qword [rsp + 0x58]
mov r13, rax
test rax, rax
je 0x14007a5c2
inc esi
dec r14d
mov dword [rsp + 0x50], esi
mov rsi, rax
sub rsi, r12
sar rsi, 1
lea rdx, [rsi + rcx]
mov qword [rsp + 0x70], rdx
cmp rdx, qword [rsp + 0x68]
jb 0x14007a592
lea rcx, [rbp + 0x230]
movsxd r9, ebx
sub rax, rcx
mov r8d, r14d
movsxd rcx, edx
mov edx, dword [rsp + 0x50]
sar rax, 1
cdqe
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
mov rcx, 0xffffffffffffffff
call fcn.1400d15f0
mov rcx, r15
mov qword [rsp + 0x68], rax
lea rdx, [rax + rax]
call fcn.1400f75dc
test rax, rax
je 0x14007a607
mov rcx, qword [rsp + 0x58]
mov r15, rax
test rsi, rsi
je 0x14007a5b1
lea r8, [rsi + rsi]
mov rdx, r12
lea rcx, [r15 + rcx*2]
call fcn.1400f1320
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x58], rcx
mov esi, dword [rsp + 0x50]
lea r12, [r13 + 2]
test r14d, r14d
jne 0x14007a500
test esi, esi
je 0x14007a614
lea rdx, [rbp + 0x230]
mov rax, r12
sub rax, rdx
sar rax, 1
sub rbx, rax
je 0x14007a6e6
lea rsi, [rbx + rcx]
cmp rsi, qword [rsp + 0x68]
jb 0x14007a6d3
lea rdx, [rsi*2 + 2]
mov rcx, r15
call fcn.1400f75dc
test rax, rax
jne 0x14007a6cb
test r15, r15
je 0x14007a614
mov rcx, r15
call fcn.1400f75c8
mov r13, qword [rsp + 0x60]
mov r12, qword [rbp + 0x21a70]
mov r9, qword [rbp + 0x21a90]
lea rax, [rbp + 0x230]
mov qword [rsp + 0x40], rdi
lea r8, str._s_c_s_cAll_Files__.__c._c
mov qword [rsp + 0x38], rdi
lea rcx, [rbp + 0x1230]
mov qword [rsp + 0x30], rdi
mov edx, 0x400
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdi
call fcn.1400d08d0
mov r15, qword [rbp + 0x21a78]
mov rcx, qword [0x14015bc10]
xorps xmm0, xmm0
xor eax, eax
add rcx, 0x68
movups xmmword [rbp - 0x80], xmm0
mov dword [rbp - 0x80], 0x98
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp + 0x10], rax
movups xmmword [rbp - 0x60], xmm0
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 0x40], xmm0
movups xmmword [rbp - 0x30], xmm0
movups xmmword [rbp - 0x20], xmm0
movups xmmword [rbp - 0x10], xmm0
movups xmmword [rbp], xmm0
call fcn.1400a2a60
test rax, rax
je 0x14007a75b
mov rax, qword [0x14015bc10]
mov rcx, qword [rax + 0x68]
mov rax, qword [rcx + 8]
mov qword [rbp - 0x78], rax
jmp 0x14007a75f
mov rcx, qword [rsp + 0x58]
mov r15, rax
lea r8, [rbx + rbx]
mov rdx, r12
lea rcx, [r15 + rcx*2]
call fcn.1400f1320
mov rcx, rsi
mov word [r15 + rcx*2], di
lea r8, [rcx*2 + 2]
lea rcx, [rbp + 0x230]
mov rdx, r15
call fcn.1400f1320
jmp 0x14007a60c
lea rsi, [rbp + 0x230]
nop
lea rdx, [0x14013fd14]
mov rcx, rsi
call fcn.1400f0d44
mov rsi, rax
test rax, rax
je 0x14007a620
lea rcx, [rbp + 0x230]
mov r8, rbx
sub rax, rcx
lea rdx, [rsi + 2]
sar rax, 1
mov rcx, rsi
sub r8, rax
add r8, r8
call fcn.1400f1320
dec rbx
add r14d, 0xffffffff
jne 0x14007a710
jmp 0x14007a620
mov qword [rbp - 0x78], rdi
cmp word [rbp + 0x1230], di
lea rax, [rbp + 0xa30]
movzx ebx, word [r15]
lea rcx, str.All_Files__._
mov qword [rbp - 0x28], rax
lea rax, [rbp + 0x1230]
cmove rax, rcx
mov dword [rbp - 0x48], 0xfffe
cmp word [rbp + 0x20], di
mov qword [rbp - 0x68], rax
lea rax, [rbp + 0x1a30]
mov qword [rbp - 0x50], rax
lea rax, [rbp + 0x20]
cmove rax, rdi
xor r14b, r14b
xor sil, sil
mov qword [rbp - 0x30], rax
test ebx, 0xffffff80
jne 0x14007a7c9
mov edx, 2
mov ecx, ebx
call fcn.1400fc354
mov edi, eax
mov eax, ebx
and eax, 0xffffffdf
test edi, edi
cmove eax, ebx
cmp eax, 0x4d
je 0x14007a7e2
cmp eax, 0x53
jne 0x14007a7e9
mov r14b, 1
jmp 0x14007a7e5
mov sil, 1
add r15, 2
mov rcx, r15
nop dword [rax]
movzx eax, word [rcx]
cmp ax, 0x20
je 0x14007a7ff
cmp ax, 9
jne 0x14007a805
add rcx, 2
jmp 0x14007a7f0
test ax, ax
je 0x14007a855
cmp ax, 0x2d
je 0x14007a816
cmp ax, 0x2b
jne 0x14007a820
lea rax, [rcx + 2]
mov rcx, rax
movzx eax, word [rax]
cmp ax, 0x30
jne 0x14007a855
movzx eax, word [rcx + 2]
mov edx, 0xffdf
sub ax, 0x58
test dx, ax
jne 0x14007a855
movzx ecx, word [rcx + 4]
call fcn.1400f57c0
test eax, eax
je 0x14007a855
xor edx, edx
mov rcx, r15
lea r8d, [rdx + 0x10]
call fcn.1400f7190
jmp 0x14007a85d
mov rcx, r15
call fcn.1400f73ac
mov ecx, eax
mov edx, 0x180004
test cl, 0x20
mov eax, 0x80004
cmovne eax, edx
mov dword [rbp - 0x20], eax
test cl, 0x10
je 0x14007a87d
or eax, 2
mov dword [rbp - 0x20], eax
test cl, 8
je 0x14007a889
bts eax, 0xd
mov dword [rbp - 0x20], eax
test sil, sil
jne 0x14007a893
test cl, 4
je 0x14007a89a
bts eax, 9
mov dword [rbp - 0x20], eax
test cl, 2
je 0x14007a8a6
bts eax, 0xb
mov dword [rbp - 0x20], eax
test cl, 1
je 0x14007a8b2
bts eax, 0xc
mov dword [rbp - 0x20], eax
call fcn.1400d9400
mov rcx, qword [0x140160760]
xor r9d, r9d
mov r8d, 0x403
movzx edi, al
lea edx, [r9 + 0x44]
call qword [sym.imp.USER32.dll_PostMessageW]
inc dword [0x14016075c]
test r14b, r14b
mov r14, qword [rsp + 0x21b30]
jne 0x14007a901
mov ecx, dword [rbp - 0x20]
test cl, 2
je 0x14007a8f5
bt ecx, 0xd
jae 0x14007a901
lea rcx, [rbp - 0x80]
call qword [sym.imp.COMDLG32.dll_GetOpenFileNameW]
jmp 0x14007a90b
lea rcx, [rbp - 0x80]
call qword [sym.imp.COMDLG32.dll_GetSaveFileNameW]
dec dword [0x14016075c]
mov ebx, eax
mov rcx, qword [0x14015bc10]
test dil, dil
sete al
mov byte [rcx + 0x12c], al
mov byte [rcx + 0x12e], dil
mov rax, qword [0x14015e420]
test rax, rax
je 0x14007a956
mov rax, qword [rax]
lea rcx, [0x14012046c]
test rax, rax
cmovne rcx, rax
cmp word [rcx], 0
je 0x14007a956
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
xor r9d, r9d
mov byte [rsp + 0x20], 1
lea r8, [r9 - 1]
test ebx, ebx
jne 0x14007a9a8
xor edx, edx
mov rcx, r13
call fcn.1400d5e90
cmp eax, 1
je 0x14007a97c
xor eax, eax
jmp 0x14007aaf6
call qword [sym.imp.COMDLG32.dll_CommDlgExtendedError]
test eax, eax
je 0x14007a995
mov dl, 1
mov rcx, r12
call fcn.1400629e0
jmp 0x14007aaf6
mov rcx, qword [0x140160738]
lea rdx, [0x140136e9c]
jmp 0x14007aae5
mov rcx, qword [0x140160738]
lea rdx, [0x14012054c]
call fcn.1400d5e90
test dword [rbp - 0x20], 0x200
je 0x14007aadb
test sil, sil
je 0x14007aaad
lea rcx, [rbp + 0x1a30]
mov rax, 0xffffffffffffffff
nop
cmp word [rcx + rax*2 + 2], 0
lea rax, [rax + 1]
jne 0x14007a9e0
cmp word [rbp + rax*2 + 0x1a32], 0
jne 0x14007aa76
mov edi, 0x5c
lea rcx, [rbp + 0x1a30]
mov edx, edi
call fcn.1400f0974
mov rbx, rax
test rax, rax
je 0x14007aadb
mov ecx, 0xa
mov word [rax], cx
lea rax, [rbp + 0x1a30]
mov rcx, rbx
sub rcx, rax
and rcx, 0xfffffffffffffffe
cmp rcx, 4
jne 0x14007aadb
cmp word [rbx - 2], 0x3a
jne 0x14007aadb
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
cmp word [rbx + r8*2 + 2], 0
lea r8, [r8 + 1]
jne 0x14007aa50
lea r8, [r8*2 + 2]
mov rdx, rbx
lea rcx, [rbx + 2]
call fcn.1400f1320
mov word [rbx], di
jmp 0x14007aadb
movzx edx, word [rbp + 0x1a30]
lea rax, [rbp + 0x1a30]
mov ecx, 0xa
nop dword [rax]
test dx, dx
je 0x14007aa9f
add rax, 2
cmp word [rax], 0
jne 0x14007aa95
cmp word [rax + 2], 0
je 0x14007aadb
mov word [rax], cx
mov edx, ecx
jmp 0x14007aa90
movzx edx, word [rbp + 0x1a30]
lea rax, [rbp + 0x1a30]
mov ecx, 0xa
test dx, dx
je 0x14007aacf
add rax, 2
cmp word [rax], 0
jne 0x14007aac5
mov word [rax], cx
mov edx, ecx
cmp word [rax + 2], 0
jne 0x14007aac0
lea rdx, [rbp + 0x1a30]
mov rcx, r13
xor r9d, r9d
mov byte [rsp + 0x20], 1
lea r8, [r9 - 1]
call fcn.1400d5e90
mov rbx, qword [rsp + 0x21b80]
mov rdi, qword [rsp + 0x21b38]
add rsp, 0x21b40
pop r15
pop r13
pop r12
pop rsi
pop rbp
ret