Function at 0x140007ee0
Capabilities:
Check mutex on windows
Create directory
Get common file path

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x428]
sub rsp, 0x500
mov qword [rbp - 0x68], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov r12, r9
mov r13, r8
mov rsi, rdx
mov r14, rcx
xor ebx, ebx
mov dword [rsp + 0x50], ebx
xor edx, edx
mov r8d, 0x208
add rcx, 0x18
call fcn.140010440
mov r8, r12
mov rdx, r13
mov rcx, r14
call fcn.140009230
mov dword [r14 + 0x220], eax
lea eax, [rax + rax*4]
lea eax, [rax*2 + 1]
mov dword [r14 + 0x224], eax
lea r15d, [rbx + 1]
cmp byte [r14 + 0x240], bl
jne 0x1400081ba
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp - 0x20]
call fcn.140010440
lea rax, [rbp - 0x20]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x801a
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov r15d, eax
test eax, eax
js 0x140008287
mov edx, 0x104
lea rcx, [rbp - 0x20]
nop dword [rax]
cmp word [rcx], bx
je 0x140007fbf
add rcx, 2
sub rdx, 1
jne 0x140007fb0
mov ebx, 0x80070057
mov ecx, ebx
test rdx, rdx
mov r8d, 0
cmovne ecx, r8d
je 0x140007fdf
mov eax, 0x104
sub rax, rdx
jmp 0x140007fe2
mov rax, r8
test ecx, ecx
js 0x140008043
mov edx, 0x104
sub rdx, rax
lea rcx, [rbp - 0x20]
lea rcx, [rcx + rax*2]
je 0x140008034
add rax, 0x7ffffefa
add rax, rdx
lea r9, str.hpqLog
sub r9, rcx
nop dword [rax + rax]
test rax, rax
je 0x140008031
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x140008031
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140008010
xor r8d, r8d
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r8w
xor edx, edx
lea rcx, [rbp - 0x20]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x140008074
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x140008074
test eax, eax
jg 0x140008069
mov r15d, eax
jmp 0x140008074
movzx r15d, ax
or r15d, 0x80070000
test r15d, r15d
js 0x140008285
mov ecx, 0x104
lea rax, [rbp - 0x20]
cmp word [rax], 0
je 0x140008096
add rax, 2
sub rcx, 1
jne 0x140008086
mov edx, ebx
test rcx, rcx
mov r8d, 0
cmovne edx, r8d
je 0x1400080b1
mov eax, 0x104
sub rax, rcx
jmp 0x1400080b4
mov rax, r8
test edx, edx
js 0x140008113
mov edx, 0x104
sub rdx, rax
lea rcx, [rbp - 0x20]
lea rcx, [rcx + rax*2]
je 0x140008104
add rax, 0x7ffffefa
add rax, rdx
lea r9, [0x14003e788]
sub r9, rcx
nop dword [rax]
test rax, rax
je 0x140008101
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x140008101
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x1400080e0
xor r8d, r8d
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r8w
mov rcx, rsi
call fcn.140005220
mov r9, rax
mov edx, 0x104
lea rcx, [rbp - 0x20]
cmp word [rcx], 0
je 0x140008137
add rcx, 2
sub rdx, 1
jne 0x140008127
test rdx, rdx
mov eax, 0
cmovne ebx, eax
je 0x14000814c
mov eax, 0x104
sub rax, rdx
test ebx, ebx
js 0x1400081a1
mov r8d, 0x104
sub r8, rax
lea rcx, [rbp - 0x20]
lea rcx, [rcx + rax*2]
je 0x14000818f
add rax, 0x7ffffefa
add rax, r8
sub r9, rcx
nop
test rax, rax
je 0x14000818f
movzx edx, word [r9 + rcx]
test dx, dx
je 0x14000818f
mov word [rcx], dx
add rcx, 2
dec rax
sub r8, 1
jne 0x140008170
lea rax, [rcx - 2]
test r8, r8
cmovne rax, rcx
xor ebx, ebx
mov word [rax], bx
jmp 0x1400081a3
xor ebx, ebx
lea r8, [rbp - 0x20]
mov edx, 0x104
lea rcx, [r14 + 0x18]
call fcn.14001cff0
jmp 0x140008290
mov rcx, rsi
call fcn.140005220
mov r8, rax
mov edx, 0x104
lea rcx, [r14 + 0x18]
call fcn.14001cff0
lea rdx, [r14 + 0x18]
lea rcx, [rsp + 0x78]
call fcn.1400058d0
nop
lea rcx, [rsp + 0x78]
call fcn.140005220
mov rcx, rax
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], 0x100
lea r9, [rbp - 0x20]
mov r8d, 3
lea rdx, [rbp + 0x430]
call fcn.14001d920
mov ebx, eax
test eax, eax
jne 0x140008277
xor eax, eax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x20]
lea r8, [rbp + 0x430]
mov edx, 0x104
lea rcx, [rbp + 0x1f0]
call fcn.14001dbec
mov ebx, eax
test eax, eax
jne 0x140008277
xor r8d, r8d
lea rdx, [rbp + 0x1f0]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov ebx, eax
cmp eax, 0xb7
mov eax, 0
cmove ebx, eax
lea rcx, [rsp + 0x78]
call fcn.140005230
test ebx, ebx
je 0x14000828e
xor ebx, ebx
mov word [r14 + 0x18], bx
jmp 0x140008290
xor ebx, ebx
lea rcx, [rbp - 0x60]
call fcn.140005200
nop
cmp word [r14 + 0x18], 0
je 0x1400082b7
lea rdx, [r14 + 0x18]
lea rcx, [rbp - 0x40]
call fcn.1400058d0
nop
mov ebx, 1
jmp 0x140008325
lea rdx, [rbp + 0x430]
lea rcx, [rsp + 0x78]
call fcn.140005000
lea rcx, [rsp + 0x78]
call fcn.1400056e0
mov qword [rax], 7
lea rcx, [rsp + 0x78]
call fcn.140004660
mov word [rbp + 0x430], bx
mov qword [rax + 0x10], rbx
cmp qword [rax + 0x18], 8
jb 0x1400082f8
mov rax, qword [rax]
lea rdx, [rbp + 0x430]
mov rcx, rax
call fcn.140005770
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rsi
lea rcx, [rsp + 0x78]
call fcn.140005340
lea rax, [rsp + 0x78]
mov ebx, 2
mov dword [rsp + 0x50], ebx
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.1400050a0
nop
test bl, 2
je 0x14000834e
and ebx, 0xfffffffd
mov dword [rsp + 0x50], ebx
lea rcx, [rsp + 0x78]
call fcn.140005230
nop
test bl, 1
je 0x140008363
and ebx, 0xfffffffe
mov dword [rsp + 0x50], ebx
lea rcx, [rbp - 0x40]
call fcn.140005230
mov r9d, 1
xor r8d, r8d
lea rdx, [0x14003e630]
lea rcx, [rsp + 0x58]
call fcn.14000a790
test eax, eax
jle 0x140008428
inc eax
movsxd rsi, eax
lea rcx, [rsp + 0x58]
call fcn.140005280
mov rdi, qword [rax]
cmp rdi, rsi
ja 0x1400083ce
lea rcx, [rsp + 0x58]
call fcn.140004660
xor edi, edi
mov word [rbp + 0x430], di
mov qword [rax + 0x10], rdi
cmp qword [rax + 0x18], 8
jb 0x1400083bd
mov rax, qword [rax]
lea rdx, [rbp + 0x430]
mov rcx, rax
call fcn.140005770
jmp 0x14000842a
test rsi, rsi
je 0x140008428
lea rcx, [rsp + 0x58]
call fcn.140004660
mov rbx, rax
cmp qword [rax + 0x18], 8
jb 0x1400083ec
mov rcx, qword [rax]
jmp 0x1400083ef
mov rcx, rbx
sub rdi, rsi
je 0x140008401
lea r8, [rdi + rdi]
lea rdx, [rcx + rsi*2]
call fcn.14000ffb0
xor eax, eax
mov word [rbp + 0x430], ax
mov qword [rbx + 0x10], rdi
cmp qword [rbx + 0x18], 8
jb 0x140008418
mov rbx, qword [rbx]
lea rcx, [rbx + rdi*2]
lea rdx, [rbp + 0x430]
call fcn.140005770
xor edi, edi
mov ebx, edi
nop dword [rax]
movsxd r8, ebx
mov r9d, 1
lea rdx, [0x14003e788]
lea rcx, [rsp + 0x58]
call fcn.14000a790
mov rbx, rax
test eax, eax
js 0x140008460
movsxd rdx, eax
lea rcx, [rsp + 0x58]
call fcn.14000a510
jmp 0x140008430
lea r8, [rsp + 0x58]
lea rcx, [rbp - 0x40]
call fcn.14000b430
nop
mov rdx, rax
lea rcx, [rbp - 0x60]
call fcn.140004550
nop
lea rcx, [rbp - 0x40]
call fcn.140005230
lea rcx, [rbp - 0x60]
call fcn.140005220
mov r8, rax
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
mov qword [r14 + 0x238], rax
test r15d, r15d
js 0x14000856b
mov rcx, r14
call fcn.140008620
test eax, eax
je 0x14000856b
mov rcx, r14
call fcn.1400088b0
test al, al
jne 0x1400084d1
mov dl, 1
mov rcx, r14
call fcn.140008980
mov r8, r12
mov rdx, r13
mov rcx, r14
call fcn.140009360
cmp byte [r14 + 0x228], 0
je 0x14000852f
mov ecx, 0x50
call fcn.14000d6dc
mov rbx, rax
mov qword [rbp + 0x430], rax
mov qword [rax], rdi
mov qword [rax + 8], rdi
xor r8d, r8d
xor edx, edx
call fcn.14000b310
mov qword [rbx], rax
mov qword [rbx + 0x10], r14
mov byte [rbx + 0x18], 0
mov qword [rbx + 0x20], rdi
lea rcx, [rbx + 0x28]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
nop
mov qword [r14 + 0x248], rbx
mov rcx, qword [r14 + 0x230]
test rcx, rcx
je 0x14000856b
cmp qword [r14 + 0x238], 0
je 0x14000856b
call fcn.14001d20c
mov rcx, qword [r14 + 0x230]
call fcn.14001b210
mov qword [r14 + 0x230], rdi
mov rcx, qword [r14 + 0x238]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
nop
lea rcx, [rsp + 0x58]
call fcn.140005230
nop
lea rcx, [rbp - 0x60]
call fcn.140005230
lea r11, [rsp + 0x500]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret