Function at 0x18004cd20
Capabilities:
Create directory
Get common file path
Write file on windows

Disassembly:
push rbp
push rbx
push rsi
push rdi
lea rbp, [rsp - 0x78]
sub rsp, 0x178
mov rax, qword [0x180176040]
xor rax, rsp
mov qword [rbp + 0x60], rax
mov rdi, rcx
lea r9, [rsp + 0x38]
xor esi, esi
lea rcx, [0x18011b648]
xor r8d, r8d
mov qword [rsp + 0x38], rsi
mov edx, 0x8000
xor bl, bl
call qword [sym.imp.SHELL32.dll_SHGetKnownFolderPath]
test eax, eax
js 0x18004d23a
mov qword [rsp + 0x1a8], r12
movabs rax, 0x797dbbe47b628941
mov qword [rsp + 0x30], rax
movabs r12, 0x74ad58979ebf1f87
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x40], rax
movabs rax, 0xd226e853e2f6293e
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x48], rax
movabs rax, 0x74ce58b99eda1ff5
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x50], rax
movabs rax, 0xd2e3f4ca9f9bf37b
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x1b0], r13
movabs r13, 0xd2e3f4ca9fc7f318
mov qword [rsp + 0x1b8], r14
movabs r14, 0x7914bba97b4c891d
mov qword [rsp + 0x30], r14
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x30], rax
mov qword [rsp + 0x170], r15
movabs r15, 0xd247e824e2a72946
mov qword [rsp + 0x30], r15
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x28], rax
mov qword [rsp + 0x30], r12
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x20], rax
mov qword [rsp + 0x30], r13
mov rax, qword [rsp + 0x30]
movdqa xmm1, xmmword [rsp + 0x40]
movdqa xmm0, xmmword [rsp + 0x50]
mov rdx, qword [rsp + 0x38]
xorps xmm1, xmmword [rbp - 0x30]
mov qword [rbp - 0x18], rax
mov rax, rdi
xorps xmm0, xmmword [rbp - 0x20]
movzx ecx, word [rdx]
movdqa xmmword [rsp + 0x40], xmm1
movdqa xmmword [rsp + 0x50], xmm0
test cx, cx
je 0x18004cea0
sub rdx, rdi
nop dword [rax]
nop dword [rax + rax]
mov word [rax], cx
add rax, 2
movzx ecx, word [rdx + rax]
test cx, cx
jne 0x18004ce90
movq rdx, xmm1
mov word [rax], si
test dx, dx
je 0x18004ced1
lea r8, [rsp + 0x40]
sub r8, rax
nop word [rax + rax]
mov word [rax], dx
add rax, 2
movzx edx, word [r8 + rax]
test dx, dx
jne 0x18004cec0
xor edx, edx
mov word [rax], si
mov rcx, rdi
mov bl, 1
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x18004d21a
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x18004d21a
mov dl, 3
call fcn.180071f90
movabs rax, 0xd34dfcc1725e87b
movabs rcx, 0x68706870f0942a62
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x60], rax
movabs rax, 0xb733894190c40929
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x68], rax
movabs rax, 0xc12df6f8da7ba7
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x70], rax
movabs rax, 0xb58d9da1eda88438
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x78], rax
movabs rax, 0x3def4198a6876b71
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x80], rax
movabs rax, 0x67333b7ae805a648
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x78], rax
movabs rax, 0x98e4bf74c38946fe
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x70], rax
movabs rax, 0xc7383391b2a6c1c3
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x68], rax
movabs rax, 0x229bbcb38a8bac4c
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x60], rax
movabs rax, 0x17b236bc0ae20f07
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x58], rax
movabs rax, 0xfaf2f51d386f49aa
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x50], rax
movabs rax, 0x78f0eca5f1dcb6a0
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x48], rax
movabs rax, 0x858f43557fe761a1
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x40], rax
mov qword [rsp + 0x30], rcx
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x38], rax
mov qword [rsp + 0x30], r14
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x30], r15
mov qword [rbp - 0x10], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x30], r12
mov qword [rbp - 8], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x30], r13
mov qword [rbp], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 8], rax
movabs rax, 0x529b22fdd4ee0f51
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x10], rax
movabs rax, 0x6505e18c829df3a
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x18], rax
movabs rax, 0xb881d11be3ec358b
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x20], rax
lea rdx, [rsp + 0x60]
movabs rax, 0xe75d41fedf86b3ac
mov r8d, edx
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x28], rax
movabs rax, 0x46fed1c1efffc225
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x30], rax
movabs rax, 0x65db529c6f966e6e
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x38], rax
movabs rax, 0x89979c6f571b2acf
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x40], rax
movabs rax, 0x1dd098829fb3d280
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x48], rax
movabs rax, 0x858f43550b9408d9
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x50], rax
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0x60]
mov rax, qword [rsp + 0x30]
movdqa xmm0, xmmword [rsp + 0x70]
xorps xmm0, xmmword [rbp]
movdqa xmm1, xmmword [rbp - 0x80]
xorps xmm1, xmmword [rbp + 0x10]
movdqa xmm2, xmmword [rsp + 0x60]
xorps xmm2, xmmword [rbp - 0x10]
movdqa xmmword [rsp + 0x70], xmm0
movdqa xmm0, xmmword [rbp - 0x70]
xorps xmm0, xmmword [rbp + 0x20]
movdqa xmmword [rbp - 0x80], xmm1
movdqa xmm1, xmmword [rbp - 0x60]
xorps xmm1, xmmword [rbp + 0x30]
movdqa xmmword [rbp - 0x70], xmm0
movdqa xmm0, xmmword [rbp - 0x50]
xorps xmm0, xmmword [rbp + 0x40]
movdqa xmmword [rbp - 0x60], xmm1
movdqa xmm1, xmmword [rbp - 0x40]
mov qword [rbp + 0x58], rax
movq rax, xmm2
xorps xmm1, xmmword [rbp + 0x50]
movdqa xmmword [rbp - 0x50], xmm0
movdqa xmmword [rbp - 0x40], xmm1
movdqa xmmword [rsp + 0x60], xmm2
test al, al
je 0x18004d1fb
nop
inc rcx
mov r8, rcx
cmp byte [rcx], sil
jne 0x18004d1f0
mov rcx, qword [0x180176ed8]
sub r8d, edx
lea rdx, [rsp + 0x60]
mov qword [rsp + 0x20], rsi
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_WriteFile]
xor bl, bl
mov r14, qword [rsp + 0x1b8]
mov r13, qword [rsp + 0x1b0]
mov r12, qword [rsp + 0x1a8]
mov r15, qword [rsp + 0x170]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
movzx eax, bl
mov rcx, qword [rbp + 0x60]
xor rcx, rsp
call fcn.1800d6ea0
add rsp, 0x178
pop rdi
pop rsi
pop rbx
pop rbp
ret