Function at 0x14006ba10
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.1400f31b0
sub rsp, rax
cmp dword [0x14014272c], 4
mov rsi, r9
mov r13, qword [0x140144a90]
mov r10, r8
mov qword [rsp + 0x60], r13
mov r15, rdx
mov r12, rcx
jl 0x14006ba7e
lea r9, [0x140103554]
xor r8d, r8d
lea rdx, str.The_maximum_number_of_File_Dialogs_has_been_reached.
call fcn.140056c40
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 0x14006bbca
cmp word [r8], di
je 0x14006bbca
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp word [r8 + rax*2], di
jne 0x14006bac0
cmp rax, 0x104
jb 0x14006bae7
mov r8d, 0x104
lea rdx, [rbp + 0x20]
mov rcx, r10
call qword [sym.imp.KERNEL32.dll_GetShortPathNameW]
jmp 0x14006bb00
mov r8d, 0x103
lea rcx, [rbp + 0x20]
mov rdx, r10
call fcn.1400e4f88
mov word [rbp + 0x226], di
mov r8d, 3
lea rdx, [0x140123900]
lea rcx, [rbp + 0x20]
call fcn.1400e583c
test eax, eax
lea rcx, [rbp + 0x20]
sete r14b
test eax, eax
jne 0x14006bb64
lea edx, [rax + 0x7d]
call fcn.1400d7a50
test rax, rax
je 0x14006bbce
cmp word [rax + 2], di
je 0x14006bbce
lea rcx, [rbp + 0x20]
mov rax, 0xffffffffffffffff
nop word [rax + rax]
cmp word [rcx + rax*2 + 2], di
lea rax, [rax + 1]
jne 0x14006bb50
cmp word [rbp + rax*2 + 0x1e], bx
je 0x14006bbce
jmp 0x14006bb73
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14006bb73
test al, 0x10
jne 0x14006bbce
mov edx, ebx
lea rcx, [rbp + 0x20]
call fcn.1400d796c
mov rbx, rax
test rax, rax
je 0x14006bba8
lea rdx, [rax + 2]
mov r8d, 0xfffe
lea rcx, [rbp + 0x1a30]
call fcn.1400e4f88
mov word [rbp + 0x21a2c], di
mov word [rbx], di
jmp 0x14006bbce
test r14b, r14b
jne 0x14006bbce
mov r8d, 0xfffe
lea rdx, [rbp + 0x20]
lea rcx, [rbp + 0x1a30]
call fcn.1400e4f88
mov word [rbp + 0x21a2c], di
mov word [rbp + 0x20], di
test rsi, rsi
je 0x14006bbf6
cmp word [rsi], di
je 0x14006bbf6
mov r8d, 0x3ff
lea rcx, [rbp + 0xa30]
mov rdx, rsi
call fcn.1400e4f88
mov word [rbp + 0x122e], di
jmp 0x14006bc15
mov r9, qword [0x140146850]
lea r8, str.Select_File____s
mov edx, 0x400
lea rcx, [rbp + 0xa30]
call fcn.1400b9a60
mov rbx, qword [rbp + 0x21a90]
mov word [rbp + 0x1230], di
mov word [rbp + 0x230], di
cmp word [rbx], di
je 0x14006be56
mov edx, 0x28
mov rcx, rbx
call fcn.1400d7a50
lea rcx, [rbp + 0x230]
mov r8d, 0x3ff
test rax, rax
je 0x14006bc89
lea rdx, [rax + 2]
call fcn.1400e4f88
mov edx, 0x29
mov word [rbp + 0xa2e], di
lea rcx, [rbp + 0x230]
call fcn.1400d796c
test rax, rax
je 0x14006bc7d
mov word [rax], di
jmp 0x14006bc98
mov word [rbp + 0x230], di
jmp 0x14006be56
mov rdx, rbx
call fcn.1400e4f88
mov word [rbp + 0xa2e], di
cmp word [rbp + 0x230], di
je 0x14006be56
mov r14d, 0xffffffff
lea rax, [rbp + 0x230]
mov rbx, 0xffffffffffffffff
nop dword [rax]
inc rbx
cmp word [rax + rbx*2], di
jne 0x14006bcc0
mov qword [rsp + 0x58], rdi
mov r15, rdi
mov qword [rsp + 0x68], rdi
cmp rbx, 0x1388
jb 0x14006bedb
mov esi, edi
lea r12, [rbp + 0x230]
nop dword [rax]
lea rdx, [0x140121774]
mov rcx, r12
call fcn.1400d7d70
mov rcx, qword [rsp + 0x58]
mov r13, rax
test rax, rax
je 0x14006bdb2
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 0x14006bd82
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.1400ba750
mov rcx, r15
mov qword [rsp + 0x68], rax
lea rdx, [rax + rax]
call fcn.1400dc1d4
test rax, rax
je 0x14006bdf7
mov rcx, qword [rsp + 0x58]
mov r15, rax
test rsi, rsi
je 0x14006bda1
lea r8, [rsi + rsi]
mov rdx, r12
lea rcx, [r15 + rcx*2]
call fcn.1400d8380
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x58], rcx
mov esi, dword [rsp + 0x50]
lea r12, [r13 + 2]
test r14d, r14d
jne 0x14006bcf0
test esi, esi
je 0x14006be04
lea rdx, [rbp + 0x230]
mov rax, r12
sub rax, rdx
sar rax, 1
sub rbx, rax
je 0x14006beba
lea rsi, [rbx + rcx]
cmp rsi, qword [rsp + 0x68]
jb 0x14006bea7
lea rdx, [rsi*2 + 2]
mov rcx, r15
call fcn.1400dc1d4
test rax, rax
jne 0x14006be9f
test r15, r15
je 0x14006be04
mov rcx, r15
call fcn.1400dc1c0
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.1400b9a60
mov r15, qword [rbp + 0x21a78]
xor edx, edx
lea rcx, [rbp - 0x80]
mov r8d, 0x98
call fcn.1400d8190
mov rcx, qword [0x14013dbe0]
add rcx, 0x68
mov dword [rbp - 0x80], 0x98
call fcn.140090fb0
test rax, rax
je 0x14006bf3b
mov rax, qword [0x14013dbe0]
mov rcx, qword [rax + 0x68]
mov rax, qword [rcx + 8]
mov qword [rbp - 0x78], rax
jmp 0x14006bf3f
mov rcx, qword [rsp + 0x58]
mov r15, rax
lea r8, [rbx + rbx]
mov rdx, r12
lea rcx, [r15 + rcx*2]
call fcn.1400d8380
mov rcx, rsi
mov word [r15 + rcx*2], di
lea r8, [rcx*2 + 2]
lea rcx, [rbp + 0x230]
mov rdx, r15
call fcn.1400d8380
jmp 0x14006bdfc
lea rsi, [rbp + 0x230]
nop dword [rax]
nop word [rax + rax]
lea rdx, [0x140121774]
mov rcx, rsi
call fcn.1400d7d70
mov rsi, rax
test rax, rax
je 0x14006be10
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.1400d8380
dec rbx
add r14d, 0xffffffff
jne 0x14006bef0
jmp 0x14006be10
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 0x14006bfa9
mov edx, 2
mov ecx, ebx
call fcn.1400df2dc
mov edi, eax
mov eax, ebx
and eax, 0xffffffdf
test edi, edi
cmove eax, ebx
cmp eax, 0x4d
je 0x14006bfc2
cmp eax, 0x53
jne 0x14006bfc9
mov r14b, 1
jmp 0x14006bfc5
mov sil, 1
add r15, 2
mov rcx, r15
call fcn.140005690
mov rcx, r15
test al, al
je 0x14006bfe5
xor edx, edx
lea r8d, [rdx + 0x10]
call fcn.1400dc0a8
jmp 0x14006bfea
call fcn.1400dc134
mov ecx, eax
mov edx, 0x180004
test cl, 0x20
mov eax, 0x80004
cmovne eax, edx
mov dword [rbp - 0x20], eax
test cl, 0x10
je 0x14006c00a
or eax, 2
mov dword [rbp - 0x20], eax
test cl, 8
je 0x14006c016
bts eax, 0xd
mov dword [rbp - 0x20], eax
test sil, sil
jne 0x14006c020
test cl, 4
je 0x14006c027
bts eax, 9
mov dword [rbp - 0x20], eax
test cl, 2
je 0x14006c033
bts eax, 0xb
mov dword [rbp - 0x20], eax
test cl, 1
je 0x14006c03f
bts eax, 0xc
mov dword [rbp - 0x20], eax
call fcn.1400c1950
mov rcx, qword [0x140142730]
xor r9d, r9d
mov r8d, 0x403
movzx edi, al
lea edx, [r9 + 0x44]
call qword [sym.imp.USER32.dll_PostMessageW]
inc dword [0x14014272c]
test r14b, r14b
mov r14, qword [rsp + 0x21b30]
jne 0x14006c08e
mov ecx, dword [rbp - 0x20]
test cl, 2
je 0x14006c082
bt ecx, 0xd
jae 0x14006c08e
lea rcx, [rbp - 0x80]
call qword [sym.imp.COMDLG32.dll_GetOpenFileNameW]
jmp 0x14006c098
lea rcx, [rbp - 0x80]
call qword [sym.imp.COMDLG32.dll_GetSaveFileNameW]
dec dword [0x14014272c]
mov ebx, eax
mov rcx, qword [0x14013dbe0]
test dil, dil
sete al
mov byte [rcx + 0x12c], al
mov byte [rcx + 0x12e], dil
mov rax, qword [0x1401403f0]
test rax, rax
je 0x14006c0e3
mov rax, qword [rax]
lea rcx, [0x140103554]
test rax, rax
cmovne rcx, rax
cmp word [rcx], 0
je 0x14006c0e3
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
xor r9d, r9d
mov byte [rsp + 0x20], 1
lea r8, [r9 - 1]
test ebx, ebx
jne 0x14006c14d
xor edx, edx
mov rcx, r13
call fcn.1400be640
cmp eax, 1
je 0x14006c109
xor eax, eax
jmp 0x14006c296
call qword [sym.imp.COMDLG32.dll_CommDlgExtendedError]
lea rdx, [0x140119f8c]
test eax, eax
je 0x14006c141
mov rax, qword [0x14013dbe0]
test byte [rax + 0x140], 1
je 0x14006c141
lea r9, [0x140103554]
xor r8d, r8d
mov rcx, r12
call fcn.140056750
jmp 0x14006c296
mov rcx, qword [0x140142708]
jmp 0x14006c285
mov rcx, qword [0x140142708]
lea rdx, [0x140103634]
call fcn.1400be640
test dword [rbp - 0x20], 0x200
je 0x14006c27b
test sil, sil
je 0x14006c24d
lea rcx, [rbp + 0x1a30]
mov rax, 0xffffffffffffffff
cmp word [rcx + rax*2 + 2], 0
lea rax, [rax + 1]
jne 0x14006c184
cmp word [rbp + rax*2 + 0x1a32], 0
jne 0x14006c216
mov edi, 0x5c
lea rcx, [rbp + 0x1a30]
mov edx, edi
call fcn.1400d796c
mov rbx, rax
test rax, rax
je 0x14006c27b
mov ecx, 0xa
mov word [rax], cx
lea rax, [rbp + 0x1a30]
mov rcx, rbx
sub rcx, rax
and rcx, 0xfffffffffffffffe
cmp rcx, 4
jne 0x14006c27b
cmp word [rbx - 2], 0x3a
jne 0x14006c27b
mov r8, 0xffffffffffffffff
nop
cmp word [rbx + r8*2 + 2], 0
lea r8, [r8 + 1]
jne 0x14006c1f0
lea r8, [r8*2 + 2]
mov rdx, rbx
lea rcx, [rbx + 2]
call fcn.1400d8380
mov word [rbx], di
jmp 0x14006c27b
movzx edx, word [rbp + 0x1a30]
lea rax, [rbp + 0x1a30]
mov ecx, 0xa
nop dword [rax]
test dx, dx
je 0x14006c23f
add rax, 2
cmp word [rax], 0
jne 0x14006c235
cmp word [rax + 2], 0
je 0x14006c27b
mov word [rax], cx
mov edx, ecx
jmp 0x14006c230
movzx edx, word [rbp + 0x1a30]
lea rax, [rbp + 0x1a30]
mov ecx, 0xa
test dx, dx
je 0x14006c26f
add rax, 2
cmp word [rax], 0
jne 0x14006c265
mov word [rax], cx
mov edx, ecx
cmp word [rax + 2], 0
jne 0x14006c260
lea rdx, [rbp + 0x1a30]
mov rcx, r13
xor r9d, r9d
mov byte [rsp + 0x20], 1
lea r8, [r9 - 1]
call fcn.1400be640
mov rbx, qword [rsp + 0x21b80]
mov rdi, qword [rsp + 0x21b38]
add rsp, 0x21b40
pop r15
pop r13
pop r12
pop rsi
pop rbp
ret