Function at 0x18001cb84
Capabilities:
Create directory
Get common file path

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
sub rsp, 0x6a0
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rax + 0x20], rbx
mov rax, qword [0x1800a8120]
xor rax, rsp
mov qword [rsp + 0x690], rax
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
mov qword [rsp + 0x58], 7
xor r12d, r12d
mov qword [rsp + 0x50], r12
mov word [rsp + 0x40], r12w
or ebp, 0xffffffff
mov r8d, ebp
lea rdx, [rsp + 0x38]
call fcn.18001bf34
lea r9, [0x180089704]
mov r8d, ebp
lea rdx, [rsp + 0x38]
mov rcx, rsi
call fcn.18001c054
cmp eax, r12d
jne 0x18001cc22
mov rcx, rbx
call fcn.180020fc8
nop
cmp qword [rsp + 0x58], 8
jb 0x18001cc1b
mov rcx, qword [rsp + 0x40]
call fcn.18005c410
xor eax, eax
jmp 0x18001ce5d
mov r8d, 2
lea rdx, [0x18008977c]
mov rcx, rbx
call fcn.1800038e0
mov r8d, 6
lea rdx, str._ieml.
mov rcx, rbx
call fcn.180018530
lea rcx, case.0x180031f8c.6
mov rax, qword [case.0x180031f8c.6]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x20], rax
cmp rdi, r12
je 0x18001cc81
mov r8, rdi
lea rdx, str.______s_
lea rcx, [rsp + 0x20]
call fcn.180010c8c
jmp 0x18001cc92
lea rdx, [0x1800897b0]
lea rcx, [rsp + 0x20]
call fcn.180010c8c
xor eax, eax
or rbp, 0xffffffffffffffff
mov rcx, rbp
mov rdx, qword [rsp + 0x20]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r13d, [rax + 1]
sub rcx, r13
mov r8, rcx
mov rcx, rbx
call fcn.180018530
lea rdx, [rsp + 0x270]
mov edi, 0x104
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
lea r9, [rsp + 0x60]
xor r8d, r8d
lea rdx, [0x1800897c0]
lea rcx, [rsp + 0x270]
call qword [sym.imp.KERNEL32.dll_GetTempFileNameW]
lea rcx, [rsp + 0x60]
call qword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
mov word [rax], r12w
lea rcx, case.0x180031f8c.6
mov rax, qword [case.0x180031f8c.6]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x28], rax
lea rcx, [rsp + 0x28]
call fcn.180017d80
mov r8, qword [rsp + 0x28]
mov rdx, rdi
lea rcx, [rsp + 0x60]
call fcn.18005eb04
xor edx, edx
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
xor r9d, r9d
mov r8d, edi
lea rdx, [rsp + 0x480]
mov rcx, rsi
call fcn.18001b0b4
lea rcx, [rsp + 0x480]
call qword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov rdx, rax
lea rcx, [rsp + 0x60]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
lea rcx, [rsp + 0x60]
call fcn.180017860
cmp eax, r12d
je 0x18001cdc9
mov r8, r13
lea rdx, str.___a
mov rcx, rbx
call fcn.180018530
xor eax, eax
mov rcx, rbp
lea rdi, [rsp + 0x60]
repne scasw ax, word [rdi]
not rcx
sub rcx, r13
mov r8, rcx
lea rdx, [rsp + 0x60]
mov rcx, rbx
call fcn.180018530
mov r8, r13
lea rdx, [0x1800897cc]
mov rcx, rbx
call fcn.180018530
jmp 0x18001cdec
xor eax, eax
mov rcx, rbp
lea rdi, [rsp + 0x60]
repne scasw ax, word [rdi]
not rcx
sub rcx, r13
mov r8, rcx
lea rdx, [rsp + 0x60]
mov rcx, rbx
call fcn.180018530
lea rdx, [rsp + 0x40]
cmp qword [rsp + 0x58], 8
cmovae rdx, qword [rsp + 0x40]
mov rcx, rbx
call fcn.18001be64
nop
mov rdx, qword [rsp + 0x28]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, ebp
cmp eax, r12d
jg 0x18001ce27
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
nop
mov rdx, qword [rsp + 0x20]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, ebp
cmp eax, r12d
jg 0x18001ce48
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + ioctlsocket]
nop
cmp qword [rsp + 0x58], 8
jb 0x18001ce5a
mov rcx, qword [rsp + 0x40]
call fcn.18005c410
mov eax, r13d
mov rcx, qword [rsp + 0x690]
xor rcx, rsp
call fcn.18005cb30
mov rbx, qword [rsp + 0x6e8]
add rsp, 0x6a0
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret