Function at 0x140012ae0
Capabilities:
Get common file path

Disassembly:
push rdi
sub rsp, 0xe80
mov rax, qword [0x14010c080]
xor rax, rsp
mov qword [rsp + 0xe70], rax
lea rdx, [0x14010dec0]
lea rcx, [rsp + 0x148]
call fcn.14000d9c0
nop
lea rcx, [0x14010de20]
call qword [sym.imp.ole32.dll_CoCreateGuid]
mov dword [rsp + 0x28], 0x400
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
lea rcx, [rsp + 0xa8]
call fcn.140012810
mov qword [rsp + 0x60], rax
mov rdx, qword [rsp + 0x60]
lea rcx, [0x14010de60]
call fcn.14000658c
lea rcx, [rsp + 0xa8]
call fcn.140004118
mov eax, 2
imul rax, rax, 0
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x48], 0x800
jae 0x140012b7b
jmp 0x140012b80
call fcn.1400b6b00
xor eax, eax
mov rcx, qword [rsp + 0x48]
mov word [rsp + rcx + 0x670], ax
mov r8d, 0x400
lea rdx, [rsp + 0x670]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov dword [rsp + 0x28], eax
lea rdx, [rsp + 0x670]
lea rcx, [0x14010df10]
call fcn.14001177c
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [0x14010de30], eax
mov eax, 2
imul rax, rax, 0
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x50], 0x800
jae 0x140012be4
jmp 0x140012be9
call fcn.1400b6b00
xor eax, eax
mov rcx, qword [rsp + 0x50]
mov word [rsp + rcx + 0x670], ax
lea rdx, [rsp + 0x670]
mov ecx, 0x400
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov dword [rsp + 0x28], eax
lea rdx, [rsp + 0x670]
lea rcx, [0x14010de40]
call fcn.14001177c
mov byte [0x14010de34], 1
lea rax, [rsp + 0x150]
mov rdi, rax
xor eax, eax
mov ecx, 0x114
rep stosb byte [rdi], al
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x150], 0x114
lea rcx, [0x1400e5e08]
call fcn.140052140
mov rcx, rax
call fcn.14005c49c
mov qword [rsp + 0x58], rax
cmp qword [rsp + 0x58], 0
je 0x140012c91
lea rcx, [0x1400e5e28]
call fcn.140051f90
mov rdx, rax
mov rcx, qword [rsp + 0x58]
call fcn.14005c0e8
mov qword [rsp + 0x38], rax
cmp qword [rsp + 0x38], 0
je 0x140012ce3
lea rcx, [rsp + 0x150]
call qword [rsp + 0x38]
test eax, eax
jne 0x140012ce3
mov al, byte [rsp + 0x154]
mov byte [0x14010de35], al
mov al, byte [rsp + 0x158]
mov byte [0x14010de36], al
movzx eax, byte [0x14010de35]
cmp eax, 0xa
jne 0x140012ce3
cmp dword [rsp + 0x15c], 0x55f0
jb 0x140012ce3
mov byte [0x14010de35], 0xb
mov edx, 0x400
lea rcx, [rsp + 0x270]
call fcn.14005d2f4
test eax, eax
jne 0x140012f36
lea rdx, [rsp + 0x270]
lea rcx, [0x14010de80]
call fcn.140011758
lea rcx, [rsp + 0x270]
call fcn.14005d26c
mov qword [rsp + 0x40], rax
lea rdx, [0x1400e5e01]
lea rcx, [0x14010dea0]
call fcn.140011758
cmp qword [rsp + 0x40], 0
je 0x140012f36
mov dword [rsp + 0x24], 0
jmp 0x140012d56
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0x40]
mov rcx, qword [rcx + 0x18]
cmp qword [rcx + rax*8], 0
je 0x140012f36
mov eax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0x40]
mov rcx, qword [rcx + 0x18]
mov rax, qword [rcx + rax*8]
mov qword [rsp + 0x30], rax
cmp dword [rsp + 0x24], 0
jbe 0x140012d9e
lea rdx, [0x1400e5e04]
lea rcx, [0x14010dea0]
call fcn.1400118ec
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x30]
movzx eax, byte [rcx + rax]
mov edx, eax
lea rcx, [rsp + 0xc8]
call fcn.140012fa8
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x70], rax
mov rdx, qword [rsp + 0x70]
lea rcx, [0x14010dea0]
call fcn.1400118c8
nop
lea rcx, [rsp + 0xc8]
call fcn.1400040f0
lea rdx, [0x1400e5e24]
lea rcx, [0x14010dea0]
call fcn.1400118ec
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x30]
movzx eax, byte [rcx + rax]
mov edx, eax
lea rcx, [rsp + 0xe8]
call fcn.140012fa8
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x80], rax
mov rdx, qword [rsp + 0x80]
lea rcx, [0x14010dea0]
call fcn.1400118c8
nop
lea rcx, [rsp + 0xe8]
call fcn.1400040f0
lea rdx, str..._...
lea rcx, [0x14010dea0]
call fcn.1400118ec
mov eax, 1
imul rax, rax, 2
mov rcx, qword [rsp + 0x30]
movzx eax, byte [rcx + rax]
mov edx, eax
lea rcx, [rsp + 0x108]
call fcn.140012fa8
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x90], rax
mov rdx, qword [rsp + 0x90]
lea rcx, [0x14010dea0]
call fcn.1400118c8
nop
lea rcx, [rsp + 0x108]
call fcn.1400040f0
lea rdx, [0x1400e5e40]
lea rcx, [0x14010dea0]
call fcn.1400118ec
mov eax, 1
imul rax, rax, 3
mov rcx, qword [rsp + 0x30]
movzx eax, byte [rcx + rax]
mov edx, eax
lea rcx, [rsp + 0x128]
call fcn.140012fa8
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0xa0], rax
mov rdx, qword [rsp + 0xa0]
lea rcx, [0x14010dea0]
call fcn.1400118c8
nop
lea rcx, [rsp + 0x128]
call fcn.1400040f0
jmp 0x140012d4c
mov byte [0x14010de38], 1
mov byte [0x14010de37], 1
mov byte [rsp + 0x20], 1
lea rcx, [rsp + 0x148]
call fcn.14000dbf8
mov al, byte [rsp + 0x20]
mov rcx, qword [rsp + 0xe70]
xor rcx, rsp
call fcn.1400b6680
add rsp, 0xe80
pop rdi
ret