Function at 0x18014ec30
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xb8
mov qword [rbp + 0xf], 0xfffffffffffffffe
mov r13, rcx
xor edi, edi
mov esi, edi
mov dword [rbp + 0x67], edi
mov rax, qword [rcx + 0x168]
mov rax, qword [rax + 0xc8]
mov rax, qword [rax + 0x130]
mov qword [rbp + 0x77], rax
lea rdx, [rax - 0x10]
lea rbx, [0x1802bccb0]
lea r12d, [rdi + 1]
cmp rdx, rbx
je 0x18014e7f2
mov eax, r12d
lock xadd dword [rdx], eax
mov esi, dword [rbp + 0x67]
lea rdx, [rbp + 0x77]
lea rcx, [rbp + 7]
call fcn.180016d90
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
or r15d, 0xffffffff
test al, 0x10
je 0x18014ea81
cmp eax, 0xffffffff
je 0x18014ea81
mov ecx, 0x250
call fcn.1800a103c
mov r14, rax
mov qword [rbp - 1], rax
test rax, rax
je 0x18014e885
lea rdx, str.Please_enter_the_name_for_the_folder
lea rcx, [rbp - 0x21]
call fcn.1800da700
mov rbx, rax
mov dword [rbp + 0x67], r12d
lea rdx, [0x1802c1a98]
lea rcx, [rbp + 0x7f]
call fcn.1800da700
nop
mov esi, 3
mov dword [rbp + 0x67], esi
mov qword [rsp + 0x20], r13
xor r9d, r9d
mov r8, rbx
mov rdx, rax
mov rcx, r14
call fcn.18016fa00
mov r14, rax
lea rbx, [0x1802bccb0]
jmp 0x18014e888
mov r14, rdi
test sil, 2
je 0x18014e8b7
and esi, 0xfffffffd
mov dword [rbp + 0x67], esi
mov rcx, qword [rbp + 0x7f]
add rcx, 0xfffffffffffffff0
cmp rcx, rbx
je 0x18014e8b7
mov eax, r15d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18014e8b4
call fcn.1800a0c6c
mov esi, dword [rbp + 0x67]
test sil, 1
je 0x18014e8dd
mov rcx, qword [rbp - 0x21]
add rcx, 0xfffffffffffffff0
cmp rcx, rbx
je 0x18014e8dd
mov eax, r15d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18014e8dd
call fcn.1800a0c6c
lea rax, str.Folder_Name
mov qword [rbp - 0x29], rax
lea rdx, [rbp - 0x29]
lea rcx, [rbp + 0x6f]
call fcn.18001a440
nop
lea rax, [0x1802bccc0]
mov qword [rbp - 0x19], rax
mov qword [rbp - 9], rax
lea r9, [rbp - 0x19]
lea r8, [rbp - 9]
lea rdx, [rbp + 0x6f]
mov rcx, r14
call fcn.180105d80
nop
mov rcx, qword [rbp + 0x6f]
add rcx, 0xfffffffffffffff0
cmp rcx, rbx
je 0x18014e93a
mov eax, r15d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18014e93a
call fcn.1800a0c6c
lea rdx, str.Create_Folder
lea rcx, [rbp - 0x11]
call fcn.1800da700
nop
mov qword [rbp - 0x69], rdi
mov dword [rbp - 0x61], edi
mov qword [rbp - 0x5d], SafeArrayGetDim
mov dword [rbp - 0x55], edi
lea rcx, [rbp - 0x69]
mov qword [rsp + 0x20], rcx
lea r9, [rbp - 0x5d]
mov r8d, r12d
mov rdx, rax
mov rcx, r14
call fcn.18016f3f0
nop
mov rcx, qword [rbp - 0x11]
add rcx, 0xfffffffffffffff0
cmp rcx, rbx
je 0x18014e999
mov eax, r15d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18014e999
call fcn.1800a0c6c
lea rdx, [0x1802c193c]
lea rcx, [rbp - 0x31]
call fcn.1800da700
nop
mov qword [rbp - 0x45], rdi
mov dword [rbp - 0x3d], edi
mov qword [rbp - 0x51], 0x1b
mov dword [rbp - 0x49], edi
lea rcx, [rbp - 0x45]
mov qword [rsp + 0x20], rcx
lea r9, [rbp - 0x51]
xor r8d, r8d
mov rdx, rax
mov rcx, r14
call fcn.18016f3f0
nop
mov rcx, qword [rbp - 0x31]
add rcx, 0xfffffffffffffff0
cmp rcx, rbx
je 0x18014e9f8
mov eax, r15d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18014e9f8
call fcn.1800a0c6c
test r14, r14
je 0x18014ea0f
lea rcx, [r14 + 0xb8]
mov rdx, r14
call fcn.180025030
mov rdi, rax
mov qword [rbp - 0x39], rdi
test rdi, rdi
je 0x18014ea1e
lock xadd dword [rdi + 8], r12d
lea r8, [rbp - 0x39]
mov rdx, r13
call fcn.180051fa0
mov rdi, rax
xor edx, edx
mov rcx, r14
call fcn.180171540
test al, al
jne 0x18014ea81
call fcn.180028090
mov rbx, rax
mov r8b, 1
mov rdx, r14
mov rcx, rax
call fcn.1801678a0
mov r8, rdi
mov rdx, r14
mov rcx, rbx
call fcn.180167820
mov rax, qword [r14]
mov dl, 1
mov rcx, r14
call qword [rax + 0x50]
mov r8b, 1
mov edx, 2
mov rcx, r14
call fcn.180169c80
lea rbx, [0x1802bccb0]
mov rcx, qword [rbp + 0x77]
add rcx, 0xfffffffffffffff0
cmp rcx, rbx
je 0x18014eaa1
lock xadd dword [rcx], r15d
lea eax, [r15 - 1]
cmp eax, 0xffffffff
jne 0x18014eaa1
call fcn.1800a0c6c
add rsp, 0xb8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x90
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov r15, rcx
xor ebx, ebx
mov dword [rsp + 0xd0], ebx
cmp byte [rcx + 0x170], bl
je 0x18014ecb9
mov rax, qword [rcx + 0x168]
mov rcx, qword [rax + 0xc8]
mov eax, dword [rcx + 0x128]
shr eax, 1
test al, 1
je 0x18014ecb9
xor r8d, r8d
lea rdx, [rsp + 0xd0]
call fcn.180151f80
mov ebx, 1
mov rcx, qword [rax]
cmp byte [rcx], 0
je 0x18014ecb9
mov rdx, rax
lea rcx, [rsp + 0x80]
call fcn.180016d90
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x18014ecb9
movzx edi, bl
jmp 0x18014ecbc
xor dil, dil
or r14d, 0xffffffff
lea r12, [0x1802bccb0]
test bl, 1
je 0x18014ecf0
mov rcx, qword [rsp + 0xd0]
add rcx, 0xfffffffffffffff0
cmp rcx, r12
je 0x18014ecf0
mov eax, r14d
lock xadd dword [rcx], eax
dec eax
cmp eax, r14d
jne 0x18014ecf0
call fcn.1800a0c6c
test dil, dil
je 0x18014eeff
lea rdx, [0x1802c191c]
lea rcx, [rsp + 0x48]
call fcn.1800da700
mov rbp, rax
lea rdx, [0x1802c19f0]
lea rcx, [rsp + 0x40]
call fcn.1800da700
mov rsi, rax
lea rdx, [0x1802c19c8]
lea rcx, [rsp + 0x60]
call fcn.1800da700
mov rdi, rax
mov rcx, qword [r15 + 0x168]
xor r8d, r8d
lea rdx, [rsp + 0x68]
mov rcx, qword [rcx + 0xc8]
call fcn.180151f80
mov rbx, rax
lea rdx, [0x1802c1a00]
lea rcx, [rsp + 0x50]
call fcn.1800da700
nop
mov rcx, qword [rbx]
mov qword [rsp + 0xd8], rcx
lea rcx, [0x1802c1a3c]
mov qword [rsp + 0xe0], rcx
mov byte [rsp + 0x20], 0
lea r9, [rsp + 0xd8]
lea r8, [rsp + 0xe0]
lea rdx, [rsp + 0x78]
mov rcx, rax
call fcn.1800d7a50
lea r8, [0x1802c17cc]
mov rdx, rax
lea rcx, [rsp + 0x88]
call fcn.1800eb4b0
mov r8, rdi
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.1800eb420
mov rdi, rax
lea rdx, [0x1802c1a28]
lea rcx, [rsp + 0xe8]
call fcn.1800da700
mov rbx, rax
mov rdx, r15
call fcn.180051f10
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rbp
mov r9, rsi
mov r8, rdi
mov rdx, rbx
mov ecx, 2
call fcn.18016ec80
nop
mov rcx, qword [rsp + 0xe8]
add rcx, 0xfffffffffffffff0
cmp rcx, r12
je 0x18014ee32
mov eax, r14d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18014ee32
call fcn.1800a0c6c
nop
mov rcx, qword [rsp + 0x58]
add rcx, 0xfffffffffffffff0
cmp rcx, r12
je 0x18014ee54
mov eax, r14d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18014ee54
call fcn.1800a0c6c
nop
mov rcx, qword [rsp + 0x50]
add rcx, 0xfffffffffffffff0
cmp rcx, r12
je 0x18014ee76
mov eax, r14d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18014ee76
call fcn.1800a0c6c
nop
mov rcx, qword [rsp + 0x68]
add rcx, 0xfffffffffffffff0
cmp rcx, r12
je 0x18014ee98
mov eax, r14d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18014ee98
call fcn.1800a0c6c
nop
mov rcx, qword [rsp + 0x60]
add rcx, 0xfffffffffffffff0
cmp rcx, r12
je 0x18014eeba
mov eax, r14d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18014eeba
call fcn.1800a0c6c
nop
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffff0
cmp rcx, r12
je 0x18014eedc
mov eax, r14d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18014eedc
call fcn.1800a0c6c
nop
mov rcx, qword [rsp + 0x48]
add rcx, 0xfffffffffffffff0
cmp rcx, r12
je 0x18014ef0c
lock xadd dword [rcx], r14d
lea eax, [r14 - 1]
cmp eax, 0xffffffff
jne 0x18014ef0c
call fcn.1800a0c6c
jmp 0x18014ef0c
mov edx, 1
mov rcx, r15
call fcn.180173690
add rsp, 0x90
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov r8, qword [rcx + 0x10]
lea rax, [r8 + 0xd0]
cmp rdx, rax
jne 0x18014f0ac
add rcx, 0xfffffffffffffea8
jmp 0x18014ec30
lea rax, [r8 + 0x248]
cmp rdx, rax
jne 0x18014f0c8
add rcx, 0xfffffffffffffea8
xor edx, edx
mov rax, qword [rcx]
jmp qword [rax + 0x50]
lea rax, [r8 + 0x3c0]
cmp rdx, rax
jne 0x18014f0e0
add rcx, 0xfffffffffffffea8
jmp 0x18014e790
ret