Function at 0x1400121c0
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc48
mov word [rcx], 0
mov r13, rcx
movzx eax, word [rdx]
test ax, ax
je 0x1400127d0
mov r12, qword [sym.imp.msvcrt.dll___wargv]
mov rsi, r8
mov rdi, rdx
lea rbx, [rsp + 0x440]
lea r15, [0x140021484]
lea r14, [0x14002148e]
lea rbp, str.PROGRAM_BASE
add rdi, 2
xor ecx, ecx
jmp 0x14001223d
mov rcx, rbx
mov word [rsp + 0x440], 0
movzx eax, word [rdi]
add rdi, 2
test ax, ax
je 0x1400127d0
cmp ax, 0x7b
je 0x140012220
movzx edx, ax
cmp edx, 0x7d
je 0x140012260
test rcx, rcx
je 0x1400123f0
mov word [rcx], ax
add rcx, 2
jmp 0x14001222d
mov word [rcx], 0
mov rcx, rbx
mov rdx, r15
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001241d
mov rcx, rbx
mov rdx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001243b
mov rcx, rbx
mov rdx, rbp
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400124bc
mov rcx, rbx
lea rdx, [0x1400214d6]
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140012535
mov rcx, rbx
lea rdx, [0x1400214de]
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140012642
mov rcx, rbx
lea rdx, str.CACHE_DIR
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400126d2
mov rcx, rbx
lea rdx, str.TIME
call sub.msvcrt.dll__wcsicmp
test eax, eax
jne 0x1400127ed
lea rcx, [rsp + 0x38]
mov qword [rsp + 0x38], 0
call qword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov r9, qword [rsp + 0x38]
mov edx, 0x400
lea rcx, [rsp + 0x40]
lea r8, str._lld
call fcn.140011b70
cmp word [r13], 0
mov r14, r13
mov r15, rsi
je 0x14001234f
nop word [rax + rax]
dec r15
cmp word [r14 + 2], 0
lea r14, [r14 + 2]
jne 0x140012340
movzx eax, byte [rsp + 0x40]
test al, al
je 0x14001261a
lea rbp, [rsp + 0x40]
nop word cs:[rax + rax]
mov r8d, 2
lea rcx, [rsp + 0x34]
lea rdx, [rsp + 0x32]
mov byte [rsp + 0x32], al
mov byte [rsp + 0x33], 0
call sub.msvcrt.dll_mbstowcs
cmp rax, 1
jne 0x1400127f1
cmp word [r14], 0
mov rax, r14
mov rcx, r15
je 0x1400123c1
mov rcx, r15
mov rdx, r14
nop dword [rax + rax]
dec rcx
cmp word [rdx + 2], 0
lea rax, [rdx + 2]
mov rdx, rax
jne 0x1400123b0
test rcx, rcx
je 0x1400127f1
movzx ecx, word [rsp + 0x34]
add r14, 2
dec r15
mov word [rax], cx
mov word [rax + 2], 0
movzx eax, byte [rbp + 1]
inc rbp
test al, al
jne 0x140012370
jmp 0x14001261a
test rsi, rsi
je 0x1400127ed
mov word [r13], ax
mov word [r13 + 2], 0
add r13, 2
dec rsi
movzx eax, word [rdi]
test ax, ax
jne 0x140012211
jmp 0x1400127d0
mov ecx, esi
mov rdx, r13
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
mov al, 1
cmp word [r13], 0
jne 0x140012770
jmp 0x1400127a9
cmp word [r13], 0
mov rax, r13
mov rcx, rsi
je 0x14001245e
nop dword [rax]
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140012450
mov rdx, qword [r12]
mov rdx, qword [rdx]
mov rdx, qword [rdx]
movzx r8d, word [rdx]
test r8w, r8w
je 0x1400124a4
xor r9d, r9d
xor r10d, r10d
nop dword [rax + rax]
cmp rcx, r10
je 0x1400127f1
mov word [rax + r10*2], r8w
add r9, 0xfffffffffffffffe
movzx r8d, word [rdx + r10*2 + 2]
inc r10
test r8w, r8w
jne 0x140012480
sub rax, r9
mov word [rax], 0
xor eax, eax
cmp word [r13], 0
jne 0x140012770
jmp 0x1400127a9
mov rcx, r13
call sub.msvcrt.dll_wcslen
mov r8, rsi
mov rcx, r13
lea rdx, str.PROGRAM
sub r8, rax
call fcn.1400121c0
test al, al
je 0x1400127ed
mov rcx, r13
mov rbp, r12
mov r12, r14
call sub.msvcrt.dll_wcslen
cmp rax, 4
jb 0x140012515
lea rcx, [r13 + rax*2 - 8]
lea rdx, str..exe
mov r14, rax
call sub.msvcrt.dll__wcsicmp
test eax, eax
jne 0x140012515
mov word [r13 + r14*2 - 8], 0
mov r14, r12
xor eax, eax
mov r12, rbp
lea rbp, str.PROGRAM_BASE
cmp word [r13], 0
jne 0x140012770
jmp 0x1400127a9
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov edx, pe_nt_image_headers64
lea rcx, [rsp + 0x40]
lea r8, [0x140021480]
mov r9d, eax
call fcn.140011b70
cmp word [r13], 0
mov r14, r13
mov r15, rsi
je 0x14001257f
nop word cs:[rax + rax]
dec r15
cmp word [r14 + 2], 0
lea r14, [r14 + 2]
jne 0x140012570
movzx eax, byte [rsp + 0x40]
test al, al
je 0x14001261a
lea rbp, [rsp + 0x40]
nop word cs:[rax + rax]
mov r8d, 2
lea rcx, [rsp + 0x38]
lea rdx, [rsp + 0x34]
mov byte [rsp + 0x34], al
mov byte [rsp + 0x35], 0
call sub.msvcrt.dll_mbstowcs
cmp rax, 1
jne 0x1400127f1
cmp word [r14], 0
mov rax, r14
mov rcx, r15
je 0x1400125f1
mov rcx, r15
mov rdx, r14
nop dword [rax + rax]
dec rcx
cmp word [rdx + 2], 0
lea rax, [rdx + 2]
mov rdx, rax
jne 0x1400125e0
test rcx, rcx
je 0x1400127f1
movzx ecx, word [rsp + 0x38]
add r14, 2
dec r15
mov word [rax], cx
mov word [rax + 2], 0
movzx eax, byte [rbp + 1]
inc rbp
test al, al
jne 0x1400125a0
xor eax, eax
lea r15, [0x140021484]
lea r14, [0x14002148e]
lea rbp, str.PROGRAM_BASE
cmp word [r13], 0
jne 0x140012770
jmp 0x1400127a9
lea rax, [rsp + 0x40]
xor ecx, ecx
mov edx, 0x28
xor r8d, r8d
xor r9d, r9d
mov qword [rsp + 0x20], rax
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x1400127ed
cmp word [r13], 0
mov rax, r13
mov rcx, rsi
je 0x14001268e
nop word cs:[rax + rax]
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140012680
movzx edx, word [rsp + 0x40]
test dx, dx
je 0x140012753
xor r8d, r8d
xor r9d, r9d
nop word cs:[rax + rax]
cmp rcx, r9
je 0x1400127f1
mov word [rax + r9*2], dx
add r8, 0xfffffffffffffffe
movzx edx, word [rsp + r9*2 + 0x42]
inc r9
test dx, dx
jne 0x1400126b0
jmp 0x140012750
lea rax, [rsp + 0x40]
xor ecx, ecx
mov edx, 0x1c
xor r8d, r8d
xor r9d, r9d
mov qword [rsp + 0x20], rax
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x1400127ed
cmp word [r13], 0
mov rax, r13
mov rcx, rsi
je 0x14001271e
nop word cs:[rax + rax]
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140012710
movzx edx, word [rsp + 0x40]
test dx, dx
je 0x140012753
xor r8d, r8d
xor r9d, r9d
nop
cmp rcx, r9
je 0x1400127f1
mov word [rax + r9*2], dx
add r8, 0xfffffffffffffffe
movzx edx, word [rsp + r9*2 + 0x42]
inc r9
test dx, dx
jne 0x140012730
sub rax, r8
mov word [rax], 0
mov al, 1
cmp word [r13], 0
je 0x1400127a9
nop word cs:[rax + rax]
dec rsi
cmp word [r13 + 2], 0
lea rcx, [r13 + 2]
mov r13, rcx
jne 0x140012770
test al, al
je 0x1400127b0
cmp word [rcx - 2], 0x5c
jne 0x1400127c1
nop dword [rax]
mov word [rcx - 2], 0
inc rsi
lea r13, [rcx - 2]
cmp word [rcx - 4], 0x5c
mov rcx, r13
je 0x140012790
jmp 0x1400127b3
mov rcx, r13
test al, al
jne 0x140012786
mov r13, rcx
movzx eax, word [rdi]
test ax, ax
jne 0x140012211
jmp 0x1400127d0
mov r13, rcx
movzx eax, word [rdi]
test ax, ax
jne 0x140012211
mov word [r13], 0
mov al, 1
add rsp, 0xc48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor eax, eax
jmp 0x1400127d9
call sub.msvcrt.dll_abort
int3