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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f0]
sub rsp, 0x2f0
mov rax, qword [0x1400390d0]
xor rax, rsp
mov qword [rbp + 0x1e0], rax
mov rdi, rcx
mov qword [rbp - 0x70], rcx
xor r12d, r12d
mov dword [rsp + 0x30], r12d
lea rax, [rbp + 0xd0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r12 + 0x1c]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathA]
test eax, eax
jne 0x140002c22
xorps xmm0, xmm0
movups xmmword [rbp - 0x68], xmm0
mov qword [rbp - 0x58], r12
mov qword [rbp - 0x50], r12
lea rax, [rbp + 0xd0]
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x1400028c0
lea rdx, [rbp + 0xd0]
lea rcx, [rbp - 0x68]
call fcn.140005850
nop
mov r8d, 0x16
lea rdx, str.PtzOpticsObsInstaller
lea rcx, [rbp - 0x68]
call fcn.140004ce0
lea rcx, [rbp - 0x68]
cmp qword [rbp - 0x50], 0x10
cmovae rcx, qword [rbp - 0x68]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
xor edx, edx
mov r8d, 0x108
lea rcx, [rbp - 0x40]
call fcn.1400098c0
mov r13, qword [rbp - 0x58]
movabs rcx, 0x7fffffffffffffff
mov rax, rcx
sub rax, r13
cmp rax, 8
jb 0x140002ca9
lea r15, [rbp - 0x68]
cmp qword [rbp - 0x50], 0x10
cmovae r15, qword [rbp - 0x68]
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x48], xmm1
lea r14, [r13 + 8]
mov ebx, 0xf
lea rsi, [rsp + 0x38]
cmp r14, rbx
jbe 0x1400029e4
mov rbx, r14
or rbx, 0xf
cmp rbx, rcx
jbe 0x1400029a4
mov rbx, rcx
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.140007338
test rax, rax
je 0x140002caf
lea rsi, [rax + 0x27]
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x1400029df
cmp rbx, 0x16
mov eax, 0x16
cmovb rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x1400029cd
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140002c9d
jmp 0x140002985
test rcx, rcx
je 0x1400029dc
call fcn.140007338
mov rsi, rax
jmp 0x1400029df
mov rsi, r12
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x50], rbx
mov r8, r13
mov rdx, r15
mov rcx, rsi
call fcn.1400091f0
movabs rax, 0x7478742e676f6c5c
mov qword [rsi + r13], rax
mov byte [rsi + r14], 0
lea rbx, [rsp + 0x38]
cmp qword [rsp + 0x50], 0x10
cmovae rbx, qword [rsp + 0x38]
lea rax, [0x140033a68]
mov qword [rbp - 0x40], rax
mov qword [rbp + 0x70], r12
mov qword [rbp + 0x98], r12
xorps xmm0, xmm0
movdqa xmmword [rbp + 0xa0], xmm0
mov dword [rsp + 0x30], 3
lea r15, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rbp + 0x68], r15
mov dword [rbp + 0x64], 0x98
lea rdx, [rbp - 0x38]
lea rcx, [rbp + 0x68]
call fcn.1400051b0
nop
mov rax, qword [rbp - 0x40]
movsxd rcx, dword [rax + 4]
lea r14, vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x40], r14
mov rax, qword [rbp - 0x40]
movsxd rcx, dword [rax + 4]
lea r8d, [rcx - 0xa8]
mov dword [rbp + rcx - 0x44], r8d
lea rcx, [rbp - 0x38]
call fcn.140004be0
nop
mov rdx, rbx
lea rcx, [rbp - 0x38]
call fcn.140004a10
mov ebx, 6
lea esi, [rbx - 4]
test rax, rax
jne 0x140002ade
mov rax, qword [rbp - 0x40]
movsxd rcx, dword [rax + 4]
mov eax, ebx
cmp qword [rbp + rcx + 8], 0
cmovne eax, esi
or eax, dword [rbp + rcx - 0x30]
and eax, 0x17
mov dword [rbp + rcx - 0x30], eax
mov edx, dword [rbp + rcx - 0x2c]
and edx, eax
jne 0x140002cb5
mov rdx, qword [rsp + 0x50]
cmp rdx, 0x10
jb 0x140002b1b
inc rdx
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002b16
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002d09
call fcn.140007330
movdqa xmm0, xmmword [0x140033b00]
movdqu xmmword [rsp + 0x48], xmm0
mov byte [rsp + 0x38], 0
mov rdx, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x140002b3b
mov rdx, qword [rdi]
mov r8, qword [rdi + 0x10]
lea rcx, [rbp - 0x40]
call fcn.140005df0
lea rcx, [rbp - 0x38]
call fcn.140004910
test rax, rax
jne 0x140002b7e
mov rax, qword [rbp - 0x40]
movsxd rcx, dword [rax + 4]
cmp qword [rbp + rcx + 8], 0
cmovne ebx, esi
or ebx, dword [rbp + rcx - 0x30]
and ebx, 0x17
mov dword [rbp + rcx - 0x30], ebx
mov eax, dword [rbp + rcx - 0x2c]
and eax, ebx
jne 0x140002d0f
mov rax, qword [rbp - 0x40]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx - 0x40], r14
mov rax, qword [rbp - 0x40]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rbp + rcx - 0x44], edx
lea rcx, [rbp - 0x38]
call fcn.140003c90
mov rax, qword [rbp - 0x40]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx - 0x40], r15
mov rax, qword [rbp - 0x40]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x10]
mov dword [rbp + rcx - 0x44], edx
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x68], rax
lea rcx, [rbp + 0x68]
call fcn.1400069d4
nop
mov rdx, qword [rbp - 0x50]
cmp rdx, 0x10
jb 0x140002c12
inc rdx
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002c0d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002c97
call fcn.140007330
mov qword [rbp - 0x58], r12
mov qword [rbp - 0x50], 0xf
mov byte [rbp - 0x68], 0
mov rdx, qword [rdi + 0x18]
cmp rdx, 0x10
jb 0x140002c58
inc rdx
mov rcx, qword [rdi]
cmp rdx, 0x1000
jb 0x140002c53
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140002ca3
mov rcx, r8
call fcn.140007330
mov byte [rdi], 0
mov qword [rdi + 0x18], 0xf
mov qword [rdi + 0x10], r12
mov rcx, qword [rbp + 0x1e0]
xor rcx, rsp
call fcn.140007310
lea r11, [rsp + 0x2f0]
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
call fcn.14000f624
nop
call fcn.1400011d0
nop
call fcn.14000f624
nop
call fcn.140001270
int3
call fcn.14000f624
nop
test dl, 4
je 0x140002cc3
lea rbx, str.ios_base::badbit_set
jmp 0x140002cd8
test sil, dl
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, 1
lea rcx, [rsp + 0x58]
call fcn.140001340
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x68]
call fcn.140001bf0
lea rdx, [0x140037b08]
lea rcx, [rsp + 0x68]
call fcn.140009114
nop
call fcn.14000f624
int3
test al, 4
je 0x140002d1c
lea rbx, str.ios_base::badbit_set
jmp 0x140002d30
test al, 2
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, 1
lea rcx, [rsp + 0x58]
call fcn.140001340
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x68]
call fcn.140001bf0
lea rdx, [0x140037b08]
lea rcx, [rsp + 0x68]
call fcn.140009114
int3