Function at 0x180012c60
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov rdi, rcx
mov rax, qword [0x1800cb028]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov rax, qword [0x1800cd100]
test rax, rax
jne 0x180012cc4
lea rcx, str.shell32
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
test rax, rax
je 0x180012f8a
lea rdx, str.SHGetKnownFolderPath
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1800cd100], rax
test rax, rax
je 0x180012f8a
lea r15, [rsp + 0x40]
mov qword [r15], 0
lea rcx, [0x1800b7020]
xor edx, edx
xor r8d, r8d
mov r9, r15
call qword [0x1800d2010]
mov rsi, qword [r15]
test rsi, rsi
je 0x180012f8a
cmp qword [0x1800cb0f0], 0xffffffffffffffff
jne 0x180012f96
mov ebp, 0x104
mov r13, qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xor r14d, r14d
mov r12d, ebp
add r12, r12
mov rcx, r12
call sym.mozglue.dll_moz_xmalloc
mov rbx, rax
mov rcx, rax
xor edx, edx
mov r8, r12
call sub.VCRUNTIME140.dll_memset
test r14, r14
jne 0x180012f9f
xor ecx, ecx
mov rdx, rbx
mov r8d, ebp
call r13
test eax, eax
je 0x180012fac
cmp eax, ebp
je 0x180012fc3
movzx eax, word [rbx]
test ax, ax
je 0x180012d7c
lea rcx, [rbx + 2]
lea edx, [rax - 0x41]
cmp dx, 0x19
jbe 0x180012d73
movzx eax, word [rcx]
add rcx, 2
test ax, ax
jne 0x180012d5c
jmp 0x180012d7c
add eax, 0x20
mov word [rcx - 2], ax
jmp 0x180012d65
mov ecx, 0x12
call sym.mozglue.dll_moz_xmalloc
mov r14, rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov word [rax + 0x10], 0
movzx ecx, word [rbx]
test cx, cx
je 0x180012f82
mov rax, rbx
add rax, 2
xor r9d, r9d
movzx ecx, cx
rol r9d, 5
xor r9d, ecx
imul r9d, r9d, 0x9e3779b9
movzx ecx, word [rax]
add rax, 2
test cx, cx
jne 0x180012dab
mov rcx, r14
call fcn.180013260
xor eax, eax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 7
mov word [rsp + 0x40], 0
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcslen]
mov r12, rax
lea rcx, [rsp + 0x40]
cmp rax, 7
jbe 0x180012fe2
mov rdx, r12
mov r8, rsi
mov r9, r12
call fcn.1800130d0
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
mov rdx, rcx
sub rdx, rax
cmp rdx, 0x20
jae 0x180013001
lea r8, str.MozillaFirefoxSkeletonUILock_
lea rcx, [rsp + 0x40]
mov edx, 0x20
mov r9d, 0x20
call fcn.1800130d0
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcslen]
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x58]
mov r8, rdx
sub r8, rcx
cmp r8, rax
jae 0x180013055
lea rcx, [rsp + 0x40]
mov rdx, rax
mov r8, r14
mov r9, rax
call fcn.1800130d0
cmp qword [rsp + 0x58], 8
jb 0x180012e8f
mov rcx, qword [rsp + 0x40]
jmp 0x180012e94
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x4000000
mov dword [rsp + 0x20], 2
mov edx, 0xc0000000
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [0x1800cb0f0], rax
mov cl, 1
cmp rax, 0xffffffffffffffff
jne 0x180012ed5
mov dword [rdi], 9
xor ecx, ecx
mov byte [rdi + 5], cl
mov rax, qword [rsp + 0x58]
cmp rax, 8
jb 0x180012f03
mov rcx, qword [rsp + 0x40]
inc rax
movabs rdx, 0x7ffffffffffff800
test rax, rdx
jne 0x18001306b
call sym.mozglue.dll__aligned_free
mov rcx, r14
call sym.mozglue.dll__aligned_free
mov rcx, rbx
call sym.mozglue.dll__aligned_free
test rsi, rsi
je 0x180012f63
mov rax, qword [0x1800cd208]
test rax, rax
jne 0x180012f5a
lea rcx, str.ole32
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
test rax, rax
je 0x180013084
lea rdx, [0x1800bbcb5]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1800cd208], rax
test rax, rax
je 0x18001308d
mov rcx, rsi
call qword [0x1800d2010]
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.180062020
nop
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor r9d, r9d
jmp 0x180012dc8
mov dword [rdi], 0xa
mov byte [rdi + 5], 0
jmp 0x180012f63
mov byte [rdi + 5], 1
jmp 0x180012f18
mov rcx, r14
call sym.mozglue.dll__aligned_free
jmp 0x180012d35
mov rcx, rbx
call sym.mozglue.dll__aligned_free
mov dword [rdi], 0xa
mov byte [rdi + 5], 0
jmp 0x180012f13
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
sete cl
shl ebp, cl
mov r14, rbx
cmp eax, 0x7a
je 0x180012d0e
jmp 0x180012d50
mov qword [rcx + 0x10], r12
mov r8, r12
add r8, r12
mov rdx, rsi
call sub.VCRUNTIME140.dll_memmove
mov word [rsp + r12*2 + 0x40], 0
jmp 0x180012e15
lea rdx, [rax + 0x20]
mov qword [rsp + 0x50], rdx
cmp rcx, 8
jb 0x180013015
mov r15, qword [rsp + 0x40]
movups xmm0, xmmword [0x1800bff0e]
movups xmmword [r15 + rax*2 + 0x30], xmm0
movups xmm0, xmmword [0x1800bfefe]
movups xmmword [r15 + rax*2 + 0x20], xmm0
movups xmm0, xmmword [0x1800bfeee]
movups xmmword [r15 + rax*2 + 0x10], xmm0
movups xmm0, xmmword [str.MozillaFirefoxSkeletonUILock_]
movups xmmword [r15 + rax*2], xmm0
mov word [r15 + rax*2 + 0x40], 0
jmp 0x180012e4b
lea r15, [rcx + rax]
mov qword [rsp + 0x50], r15
cmp rdx, 8
jb 0x18001309e
mov r12, qword [rsp + 0x40]
jmp 0x1800130a3
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x1800130c1
mov rcx, rax
jmp 0x180012efe
lea rcx, str.Could_not_load_ole32___will_not_free_with_CoTaskMemFree
jmp 0x180013094
lea rcx, str.Could_not_find_CoTaskMemFree
call fcn.18009c170
jmp 0x180012f63
lea r12, [rsp + 0x40]
lea rcx, [r12 + rcx*2]
add rax, rax
mov rdx, r14
mov r8, rax
call sub.VCRUNTIME140.dll_memmove
mov word [r12 + r15*2], 0
jmp 0x180012e80
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3