Function at 0x180055880
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 [0x1801a7040]
xor rax, rsp
mov qword [rbp + 0x60], rax
mov rdi, rcx
lea r9, [rsp + 0x38]
xor esi, esi
lea rcx, [0x180143718]
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 0x180055d8a
mov qword [rsp + 0x1a8], r12
movabs rax, 0xc965e9c06bd6fb6b
mov qword [rsp + 0x30], rax
movabs r12, 0xe8202de72d50f57c
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x40], rax
movabs rax, 0xe84f2d8f2d35f50c
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x48], rax
movabs rax, 0xcc487f408fd222e6
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x1b0], r13
movabs r13, 0xcc487f1c8fb92289
mov qword [rsp + 0x1b8], r14
movabs r14, 0x43f7adb5344dc306
mov qword [rsp + 0x30], r14
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x170], r15
movabs r15, 0xc904e9b66bf8fb37
mov qword [rsp + 0x30], r15
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x30], r12
mov qword [rbp - 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x28], rax
mov qword [rsp + 0x30], r13
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x20], rax
mov qword [rsp + 0x30], r14
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 0x1800559f0
sub rdx, rdi
nop word [rax + rax]
mov word [rax], cx
add rax, 2
movzx ecx, word [rdx + rax]
test cx, cx
jne 0x1800559e0
movq rdx, xmm1
mov word [rax], si
test dx, dx
je 0x180055a21
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 0x180055a10
xor edx, edx
mov word [rax], si
mov rcx, rdi
mov bl, 1
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x180055d6a
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x180055d6a
mov dl, 3
call fcn.18008d420
movabs rax, 0xbd248dd307919a51
movabs rcx, 0xdbd46523e1577788
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x60], rax
movabs rax, 0x8d544c825f33d513
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x68], rax
movabs rax, 0xb8240a7de9dc46a9
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x70], rax
movabs rax, 0x2499c4de4622b426
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x78], rax
movabs rax, 0x3131a06f6b95524b
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x80], rax
movabs rax, 0xf49ebfc9f263a6f2
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x78], rax
movabs rax, 0x31029d8f8a351be8
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x70], rax
movabs rax, 0xdfbe07f682a31915
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x68], rax
movabs rax, 0xdb66e2dcf6d57336
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x60], rax
movabs rax, 0x660e4a9f8110f0ad
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x58], rax
movabs rax, 0xbfc6a486fc424894
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x50], rax
movabs rax, 0xfa772cca9f5286ae
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp - 0x48], rax
movabs rax, 0xe1b4d7a25a94f3eb
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], r15
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x30], r12
mov qword [rbp - 0x10], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x30], r13
mov qword [rbp - 8], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x30], r14
mov qword [rbp], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 8], rax
movabs rax, 0x5e45c30a19fc366b
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x10], rax
movabs rax, 0x95fddaabd24fdf80
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x18], rax
movabs rax, 0x1167f3e0aa50689d
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x20], rax
lea rdx, [rsp + 0x60]
movabs rax, 0xffdb7599ef836b7a
mov r8d, edx
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x28], rax
movabs rax, 0xbf038fae93a11d5f
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x30], rax
movabs rax, 0x14672ebfe46491c4
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x38], rax
movabs rax, 0xcca3cdf493362bf1
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x40], rax
movabs rax, 0x9f5758edf13de28e
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x48], rax
movabs rax, 0xe1b4d7a22ee79a93
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 0x180055d4b
nop
inc rcx
mov r8, rcx
cmp byte [rcx], sil
jne 0x180055d40
mov rcx, qword [0x1801ceca8]
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.1800f39f0
add rsp, 0x178
pop rdi
pop rsi
pop rbx
pop rbp
ret