Function at 0x180009964
Capabilities:
Create directory
Get file attributes
Write file on windows

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov dword [rax + 0x20], r9d
push rbp
push r14
push r15
lea rbp, [rax - 0x9c8]
sub rsp, 0xab0
cmp dword [rcx + 8], 0xffffffff
mov rbx, r8
mov edi, edx
mov rsi, rcx
je 0x1800099a0
mov rcx, qword [rcx]
call fcn.180009260
mov rcx, qword [rsi]
or dword [rsi + 8], 0xffffffff
cmp edi, dword [rcx + 8]
jl 0x1800099b6
mov eax, 0x10000
jmp 0x180009d73
cmp edi, dword [rcx + 0x14]
jge 0x1800099ca
call fcn.1800089d0
jmp 0x1800099ca
mov rcx, rax
call fcn.180008a1c
mov rax, qword [rsi]
cmp dword [rax + 0x14], edi
jl 0x1800099c2
lea r8, [rbp + 0x570]
mov edx, edi
mov rcx, rsi
call fcn.1800092e8
movzx eax, word [rbx]
xor edi, edi
test byte [rbp + 0x77c], 0x10
je 0x180009a22
cmp ax, 0x2f
je 0x180009a10
cmp ax, 0x5c
je 0x180009a10
test ax, ax
je 0x180009a09
cmp word [rbx + 2], 0x3a
je 0x180009a10
lea rdi, [rsi + 0x250]
mov rdx, rbx
mov rcx, rdi
call fcn.180009868
xor eax, eax
jmp 0x180009d73
mov r15, rbx
mov rcx, rbx
jmp 0x180009a46
cmp ax, 0x2f
je 0x180009a3c
cmp ax, 0x5c
je 0x180009a3c
add rcx, 2
jmp 0x180009a43
lea r15, [rcx + 2]
mov rcx, r15
movzx eax, word [rcx]
test ax, ax
jne 0x180009a2a
mov rdx, rbx
lea rcx, [rsp + 0x40]
call fcn.18000f9fc
cmp r15, rbx
jne 0x180009a64
mov word [rsp + 0x40], di
jmp 0x180009a9c
mov rax, r15
sub rax, rbx
sar rax, 1
mov word [rsp + rax*2 + 0x40], di
movzx eax, word [rsp + 0x40]
cmp ax, 0x2f
je 0x180009b9a
cmp ax, 0x5c
je 0x180009b9a
test ax, ax
je 0x180009a9c
cmp word [rsp + 0x42], 0x3a
je 0x180009b9a
lea r14, [rsi + 0x250]
mov qword [rsp + 0x20], r15
mov r8, r14
lea r9, [rsp + 0x40]
lea rdx, str._s_s_s
lea rcx, [rbp + 0x7a0]
call qword [sym.imp.USER32.dll_wsprintfW]
or r15d, 0xffffffff
test r14, r14
je 0x180009ae6
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, r15d
jne 0x180009ae6
xor edx, edx
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
movzx eax, word [rsp + 0x40]
test ax, ax
je 0x180009c68
lea rbx, [rsp + 0x40]
lea rcx, [rsp + 0x40]
cmp ax, 0x2f
je 0x180009b0a
cmp ax, 0x5c
jne 0x180009b0d
mov rbx, rcx
add rcx, 2
movzx eax, word [rcx]
test ax, ax
jne 0x180009afe
lea rax, [rsp + 0x40]
cmp rbx, rax
je 0x180009b5c
lea rax, [rsp + 0x40]
sub rbx, rax
lea rdx, [rsp + 0x40]
sar rbx, 1
lea rcx, [rbp + 0x360]
add rbx, rbx
mov r8, rbx
call fcn.18000bc60
lea rdx, [rbp + 0x360]
mov word [rbp + rbx + 0x360], di
mov rcx, r14
call fcn.180009868
mov word [rbp + 0x150], di
test r14, r14
je 0x180009b77
mov rdx, r14
lea rcx, [rbp + 0x150]
call fcn.18000f9fc
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x150]
call fcn.18000f0a4
lea rcx, [rbp + 0x150]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
jmp 0x180009c54
mov r9, r15
lea r8, [rsp + 0x40]
lea rdx, str._s_s
lea rcx, [rbp + 0x7a0]
call qword [sym.imp.USER32.dll_wsprintfW]
movzx eax, word [rsp + 0x40]
test ax, ax
je 0x180009c68
lea rbx, [rsp + 0x40]
lea rcx, [rsp + 0x40]
cmp ax, 0x2f
je 0x180009bda
cmp ax, 0x5c
jne 0x180009bdd
mov rbx, rcx
add rcx, 2
movzx eax, word [rcx]
test ax, ax
jne 0x180009bce
lea rax, [rsp + 0x40]
cmp rbx, rax
je 0x180009c2b
lea rax, [rsp + 0x40]
sub rbx, rax
lea rdx, [rsp + 0x40]
sar rbx, 1
lea rcx, [rbp + 0x360]
add rbx, rbx
mov r8, rbx
call fcn.18000bc60
lea rdx, [rbp + 0x360]
mov word [rbp + rbx + 0x360], di
xor ecx, ecx
call fcn.180009868
lea rdx, [rsp + 0x40]
mov word [rbp + 0x150], di
lea rcx, [rbp + 0x150]
call fcn.18000f0a4
lea rcx, [rbp + 0x150]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
or r15d, 0xffffffff
cmp eax, r15d
jne 0x180009c68
xor edx, edx
lea rcx, [rbp + 0x150]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov eax, dword [rbp + 0x77c]
lea rcx, [rbp + 0x7a0]
mov qword [rsp + 0x30], rdi
xor r9d, r9d
mov dword [rsp + 0x28], eax
xor r8d, r8d
mov edx, 0x40000000
mov dword [rsp + 0x20], 2
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r14, rax
cmp rax, 0xffffffffffffffff
jne 0x180009caa
mov eax, 0x200
jmp 0x180009d73
mov rdx, qword [rsi + 0x240]
mov rcx, qword [rsi]
call fcn.180008c54
mov r15d, 0x4000
cmp qword [rsi + 0x248], rdi
jne 0x180009cd7
mov ecx, r15d
call fcn.18000a680
mov qword [rsi + 0x248], rax
mov rdx, qword [rsi + 0x248]
lea r9, [rbp + 0x9e8]
mov rcx, qword [rsi]
mov r8d, r15d
call fcn.180008f48
mov ebx, eax
cmp eax, 0xffffff96
je 0x180009d5b
test eax, eax
js 0x180009d2d
jle 0x180009d20
mov rdx, qword [rsi + 0x248]
lea r9, [rbp + 0x9f0]
mov r8d, eax
mov qword [rsp + 0x20], rdi
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x180009d34
cmp byte [rbp + 0x9e8], dil
jne 0x180009d3b
test ebx, ebx
jne 0x180009cd7
mov edi, 0x5000000
jmp 0x180009d60
mov edi, 0x400
jmp 0x180009d60
lea r9, [rbp + 0x790]
mov rcx, r14
lea r8, [rbp + 0x780]
lea rdx, [rbp + 0x788]
call qword [sym.imp.KERNEL32.dll_SetFileTime]
jmp 0x180009d60
mov edi, 0x1000
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsi]
call fcn.180009260
mov eax, edi
lea r11, [rsp + 0xab0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rbp
ret