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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x670
mov rax, qword [0x100347ae0]
xor rax, rsp
mov qword [rsp + 0x660], rax
xor r13d, r13d
mov r12, rdx
mov r8, rcx
cmp rcx, r13
je 0x1000b78e7
mov edi, 0x104
mov ebx, r13d
mov rax, rdi
cmp word [rcx], r13w
je 0x1000b78d8
add rcx, 2
sub rax, 1
jne 0x1000b78c8
cmp rax, r13
jne 0x1000b78e2
mov rdi, r13
jmp 0x1000b78ec
sub rdi, rax
jmp 0x1000b78f1
mov rdi, qword [rsp + 0x20]
mov ebx, 0x80070057
cmp ebx, r13d
lea r9, [0x100331948]
cmovl rdi, r13
cmp ebx, r13d
jl 0x1000b7bb4
lea rax, [rsp + 0x30]
mov edx, 0x105
lea rcx, [rsp + 0x30]
sub r8, rax
mov ebx, r13d
lea rax, [rdx + 0x7ffffef9]
cmp rax, r13
je 0x1000b7941
movzx eax, word [r8 + rcx]
cmp ax, r13w
je 0x1000b7941
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1000b791d
cmp rdx, r13
jne 0x1000b794f
sub rcx, 2
mov ebx, 0x8007007a
cmp ebx, r13d
mov word [rcx], r13w
jl 0x1000b7bb4
lea rax, [rdi - 1]
cmp rax, rdi
ja 0x1000b796d
mov rdi, rax
mov ebx, r13d
jmp 0x1000b799c
mov ebx, 0x80070216
mov rcx, qword [0x100331948]
cmp rcx, r9
je 0x1000b799c
test byte [rcx + 0x3c], 2
je 0x1000b799c
mov rcx, qword [rcx + 0x30]
lea r8, [0x100020f28]
mov edx, 0xb
mov r9d, ebx
call fcn.100050618
cmp ebx, r13d
jl 0x1000b7bb4
mov r15d, 0x5c
cmp word [rsp + rdi*2 + 0x30], r15w
jne 0x1000b79b9
mov word [rsp + rdi*2 + 0x30], r13w
cmp word [rsp + 0x30], r15w
lea rax, [rsp + 0x30]
lea rdi, [rsp + 0x32]
mov word [rsp + 0x450], r13w
mov ebp, r13d
cmovne rdi, rax
mov edx, r15d
mov rcx, rdi
call qword [sym.imp.msvcrt.dll_wcschr]
mov rsi, rax
cmp rax, r13
jne 0x1000b7a54
lea rax, [rsp + 0x240]
mov r8, rdi
mov edx, 0x105
lea rcx, [rsp + 0x240]
mov ebx, r13d
sub r8, rax
lea rax, [rdx + 0x7ffffef9]
cmp rax, r13
je 0x1000b7a2f
movzx eax, word [r8 + rcx]
cmp ax, r13w
je 0x1000b7a2f
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1000b7a0b
cmp rdx, r13
jne 0x1000b7a3d
sub rcx, 2
mov ebx, 0x8007007a
cmp ebx, r13d
mov word [rcx], r13w
jl 0x1000b7bb4
mov ebp, 1
jmp 0x1000b7ae7
mov rcx, rax
sub rcx, rdi
sar rcx, 1
cmp rcx, 0x7ffffffe
jbe 0x1000b7a76
mov ebx, 0x80070057
mov word [rsp + 0x240], r13w
jmp 0x1000b7acc
lea rdx, [rsp + 0x240]
mov r10, rdi
mov r9, rcx
mov r8d, 0x105
lea rax, [rsp + 0x240]
mov ebx, r13d
sub r10, rdx
cmp r9, r13
je 0x1000b7aba
movzx edx, word [rax + r10]
cmp dx, r13w
je 0x1000b7aba
dec r8
mov word [rax], dx
dec r9
add rax, 2
cmp r8, r13
jne 0x1000b7a98
cmp r8, r13
jne 0x1000b7ac8
sub rax, 2
mov ebx, 0x8007007a
mov word [rax], r13w
cmp ebx, r13d
jl 0x1000b7bb4
cmp rsi, rdi
jb 0x1000b7baf
mov word [rsp + rcx*2 + 0x240], r13w
lea r8, [rsp + 0x240]
lea rcx, [rsp + 0x450]
mov edx, 0x105
call fcn.1000b822c
cmp eax, r13d
mov ebx, eax
jl 0x1000b7bb4
lea rcx, [rsp + 0x450]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1000b7b23
test al, 0x10
jne 0x1000b7b53
mov eax, ebp
lea rcx, [rsp + 0x450]
neg eax
sbb rdx, rdx
and rdx, r12
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
cmp eax, r13d
je 0x1000b7b87
lea rcx, [rsp + 0x450]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1000b7b87
cmp rsi, r13
je 0x1000b7b7c
lea r8, [0x100020004]
lea rcx, [rsp + 0x450]
mov edx, 0x105
lea rdi, [rsi + 2]
call fcn.1000b822c
cmp eax, r13d
mov ebx, eax
jl 0x1000b7bb4
cmp ebp, r13d
je 0x1000b79d9
jmp 0x1000b7ba8
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, r13d
jne 0x1000b7b99
mov ebx, 0x80004005
jmp 0x1000b7bb4
movzx ebx, ax
or ebx, 0x80070000
cmp eax, r13d
cmovle ebx, eax
cmp ebx, r13d
jge 0x1000b7be5
jmp 0x1000b7bb4
mov ebx, 0x80070216
mov rcx, qword [0x100331948]
lea rax, [0x100331948]
cmp rcx, rax
je 0x1000b7be5
test byte [rcx + 0x3c], 2
je 0x1000b7be5
mov rcx, qword [rcx + 0x30]
lea r8, [0x100021040]
mov edx, 0x1c
mov r9d, ebx
call fcn.100050618
mov eax, ebx
mov rcx, qword [rsp + 0x660]
xor rcx, rsp
call fcn.1002edf64
lea r11, [rsp + 0x670]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r13
pop r12
pop rdi
pop rsi
ret