Function at 0x1400778a0
Capabilities:
Check if file exists
Create directory
Get file attributes

Disassembly:
push rbp
push r12
lea rbp, [rsp - 0x78]
sub rsp, 0x178
mov rax, qword [0x140330030]
xor rax, rsp
mov qword [rbp + 0x50], rax
cmp qword [rcx + 0x18], 0x10
mov r12, rcx
jb 0x1400778cb
mov rcx, qword [rcx]
mov qword [rsp + 0x198], rbx
mov qword [rsp + 0x1a0], rsi
mov qword [rsp + 0x1a8], rdi
mov qword [rsp + 0x170], r13
mov qword [rsp + 0x168], r14
mov qword [rsp + 0x160], r15
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x140077b12
mov rsi, qword [r12 + 0x10]
test rsi, rsi
je 0x140077b94
xor r15d, r15d
lea r14, [0x140174444]
mov rbx, 0xffffffffffffffff
nop dword [rax]
inc rbx
cmp byte [r14 + rbx], 0
jne 0x140077930
mov r13, qword [r12 + 0x18]
mov rdi, r12
cmp r13, 0x10
jb 0x14007794c
mov rdi, qword [r12]
test rbx, rbx
je 0x1400779b6
cmp r15, rsi
jae 0x1400779b6
xor edx, edx
lea rcx, [rsp + 0x50]
mov r8d, 0x100
call sub.VCRUNTIME140.dll_memset
lea rdx, [rbx + r14]
mov rcx, r14
cmp r14, rdx
je 0x140077990
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rcx]
inc rcx
mov byte [rsp + rax + 0x50], 1
cmp rcx, rdx
jne 0x140077980
lea rdx, [rsi + rdi]
lea rax, [rdi + r15]
cmp rax, rdx
jae 0x1400779b6
nop dword [rax]
movzx ecx, byte [rax]
cmp byte [rsp + rcx + 0x50], 0
jne 0x140077a31
inc rax
cmp rax, rdx
jb 0x1400779a0
mov rax, 0xffffffffffffffff
cmp rax, 0xffffffffffffffff
mov r15, rsi
xorps xmm0, xmm0
mov r14, r12
cmovne r15, rax
xor eax, eax
cmp rsi, r15
mov qword [rsp + 0x38], rax
mov rdi, r15
mov qword [rsp + 0x40], rax
cmovb rdi, rsi
movups xmmword [rsp + 0x28], xmm0
cmp r13, 0x10
jb 0x1400779f3
mov r14, qword [r12]
movabs r13, 0x7fffffffffffffff
cmp rdi, r13
ja 0x140077ba2
mov qword [rsp + 0x40], Ordinal_17
cmp rdi, 0x10
jae 0x140077a36
mov r8, rdi
mov qword [rsp + 0x38], rdi
mov rdx, r14
lea rcx, [rsp + 0x28]
call sub.VCRUNTIME140.dll_memcpy
mov byte [rsp + rdi + 0x28], 0
jmp 0x140077a81
sub rax, rdi
jmp 0x1400779bd
mov rsi, rdi
or rsi, 0xf
cmp rsi, r13
jbe 0x140077a47
mov rsi, r13
jmp 0x140077a54
cmp rsi, 0x16
mov eax, 0x16
cmovb rsi, rax
lea rdx, [rsi + 1]
call fcn.140003530
mov r8, rdi
mov qword [rsp + 0x28], rax
mov rdx, r14
mov qword [rsp + 0x38], rdi
mov rcx, rax
mov qword [rsp + 0x40], rsi
mov rbx, rax
call sub.VCRUNTIME140.dll_memcpy
mov byte [rdi + rbx], 0
cmp qword [rsp + 0x38], 0
je 0x140077ac4
cmp qword [rsp + 0x40], 0x10
lea rcx, [rsp + 0x28]
cmovae rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x140077ac4
cmp qword [rsp + 0x40], 0x10
lea rcx, [rsp + 0x28]
cmovae rcx, qword [rsp + 0x28]
call qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__mkdir]
test eax, eax
jne 0x140077b5b
mov rdx, qword [rsp + 0x40]
inc r15
cmp rdx, 0x10
jb 0x140077b04
mov rcx, qword [rsp + 0x28]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140077aff
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140077b9b
call fcn.14014d400
mov rsi, qword [r12 + 0x10]
cmp r15, rsi
jb 0x14007791b
mov al, 1
mov r15, qword [rsp + 0x160]
mov r14, qword [rsp + 0x168]
mov r13, qword [rsp + 0x170]
mov rdi, qword [rsp + 0x1a8]
mov rsi, qword [rsp + 0x1a0]
mov rbx, qword [rsp + 0x198]
mov rcx, qword [rbp + 0x50]
xor rcx, rsp
call fcn.14014ce80
add rsp, 0x178
pop r12
pop rbp
ret
mov rdx, qword [rsp + 0x40]
cmp rdx, 0x10
jb 0x140077b94
mov rcx, qword [rsp + 0x28]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140077b8f
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140077b9b
call fcn.14014d400
xor al, al
jmp 0x140077b14
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140001420
int3