Function at 0x18001e900
Capabilities:
Get common file path

Disassembly:
push rbx
sub rsp, 0x170
mov rax, qword [0x1800ee530]
xor rax, rsp
mov qword [rsp + 0x140], rax
mov ebx, ecx
mov dword [rsp + 0x20], ecx
lea rcx, [rsp + 0x30]
xor edx, edx
mov r8d, 0x104
call fcn.18006b2e0
mov r8d, 0x104
lea rdx, [rsp + 0x30]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x18001e9a4
mov edx, eax
lea r9, [0x1800c9940]
mov rcx, 0xffffffffffffffff
nop word [rax + rax]
inc rcx
cmp byte [r9 + rcx], 0
jne 0x18001e960
cmp rcx, rdx
ja 0x18001e9a4
lea rcx, [rsp + 0x30]
add rcx, rdx
cmp byte [rcx], 0x5c
je 0x18001e984
dec rcx
add eax, 0xffffffff
jne 0x18001e977
mov eax, eax
lea rcx, [rsp + 0x30]
add rcx, rax
mov r8d, 7
mov rdx, r9
call fcn.18009ef70
test eax, eax
je 0x18001f089
cmp qword [0x1800ef380], 0
jne 0x18001f089
cmp qword [0x1800ef260], 0
jne 0x18001f089
cmp qword [0x1800ef370], 0
jne 0x18001f089
cmp qword [0x1800ef388], 0
jne 0x18001f089
cmp qword [0x1800ef390], 0
jne 0x18001f089
cmp qword [0x1800ef398], 0
jne 0x18001f089
mov qword [rsp + 0x188], rbp
mov qword [rsp + 0x190], rsi
xor esi, esi
mov qword [rsp + 0x198], rdi
mov qword [rsp + 0x168], r12
mov qword [rsp + 0x160], r13
mov qword [rsp + 0x158], r14
mov qword [rsp + 0x150], r15
test ebx, ebx
je 0x18001eed0
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea rbx, [0x1800c9950]
mov rdx, 0xffffffffffffffff
mov edi, eax
inc rdx
cmp word [rbx + rdx*2], si
jne 0x18001ea54
lea ecx, [rax + 1]
add rdx, rcx
mov ecx, 0x40
add rdx, rdx
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov r13, rax
mov r14d, 0x5c
test rax, rax
jne 0x18001ea84
mov r13, rsi
jmp 0x18001eaee
mov edx, edi
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov r9d, eax
lea ecx, [r9 - 1]
cmp word [r13 + rcx*2], r14w
je 0x18001eaa7
mov word [r13 + r9*2], r14w
inc r9d
mov edx, esi
mov rax, 0xffffffffffffffff
inc rax
cmp word [rbx + rax*2], dx
jne 0x18001eab0
test rax, rax
je 0x18001eaee
mov r8, rsi
movzx eax, word [rbx + r8*2]
lea ecx, [rdx + r9]
inc edx
mov word [r13 + rcx*2], ax
mov r8d, edx
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp word [rbx + rax*2], si
jne 0x18001eae0
cmp r8, rax
jb 0x18001eac1
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea rbx, [0x1800c9970]
mov rdx, 0xffffffffffffffff
mov edi, eax
nop dword [rax + rax]
inc rdx
cmp word [rbx + rdx*2], si
jne 0x18001eb10
lea ecx, [rax + 1]
add rdx, rcx
mov ecx, 0x40
add rdx, rdx
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rbp, rax
test rax, rax
jne 0x18001eb3a
mov rbp, rsi
jmp 0x18001ebae
mov edx, edi
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov r9d, eax
lea ecx, [r9 - 1]
cmp word [rbp + rcx*2], r14w
je 0x18001eb5d
mov word [rbp + r9*2], r14w
inc r9d
mov edx, esi
mov rax, 0xffffffffffffffff
inc rax
cmp word [rbx + rax*2], dx
jne 0x18001eb66
test rax, rax
je 0x18001ebae
mov r8, rsi
nop word [rax + rax]
movzx eax, word [rbx + r8*2]
lea ecx, [rdx + r9]
inc edx
mov word [rbp + rcx*2], ax
mov r8d, edx
mov rax, 0xffffffffffffffff
nop word [rax + rax]
inc rax
cmp word [rbx + rax*2], si
jne 0x18001eba0
cmp r8, rax
jb 0x18001eb80
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea rbx, [0x1800c9990]
mov rdx, 0xffffffffffffffff
mov edi, eax
nop dword [rax + rax]
inc rdx
cmp word [rbx + rdx*2], si
jne 0x18001ebd0
lea ecx, [rax + 1]
add rdx, rcx
mov ecx, 0x40
add rdx, rdx
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov r12, rax
test rax, rax
jne 0x18001ebfa
mov r12, rsi
jmp 0x18001ec6e
mov edx, edi
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov r9d, eax
lea ecx, [r9 - 1]
cmp word [r12 + rcx*2], r14w
je 0x18001ec1b
mov word [r12 + r9*2], r14w
inc r9d
mov r8d, esi
mov rax, 0xffffffffffffffff
inc rax
cmp word [rbx + rax*2], si
jne 0x18001ec25
test rax, rax
je 0x18001ec6e
mov rdx, rsi
nop word [rax + rax]
movzx eax, word [rbx + rdx*2]
lea ecx, [r8 + r9]
inc r8d
mov word [r12 + rcx*2], ax
mov edx, r8d
mov rax, 0xffffffffffffffff
nop word [rax + rax]
inc rax
cmp word [rbx + rax*2], si
jne 0x18001ec60
cmp rdx, rax
jb 0x18001ec40
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea rbx, [0x1800c99b0]
mov rdx, 0xffffffffffffffff
mov edi, eax
nop dword [rax + rax]
inc rdx
cmp word [rbx + rdx*2], si
jne 0x18001ec90
lea ecx, [rax + 1]
add rdx, rcx
mov ecx, 0x40
add rdx, rdx
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov r15, rax
test rax, rax
jne 0x18001ecba
mov r15, rsi
jmp 0x18001ed2e
mov edx, edi
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov r9d, eax
lea ecx, [r9 - 1]
cmp word [r15 + rcx*2], r14w
je 0x18001ecdb
mov word [r15 + r9*2], r14w
inc r9d
mov r8d, esi
mov rax, 0xffffffffffffffff
inc rax
cmp word [rbx + rax*2], si
jne 0x18001ece5
test rax, rax
je 0x18001ed2e
mov rdx, rsi
nop word [rax + rax]
movzx eax, word [rbx + rdx*2]
lea ecx, [r8 + r9]
inc r8d
mov word [r15 + rcx*2], ax
mov edx, r8d
mov rax, 0xffffffffffffffff
nop word [rax + rax]
inc rax
cmp word [rbx + rax*2], si
jne 0x18001ed20
cmp rdx, rax
jb 0x18001ed00
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea rbx, [0x1800c99d0]
mov rdx, 0xffffffffffffffff
mov edi, eax
nop dword [rax + rax]
inc rdx
cmp word [rbx + rdx*2], si
jne 0x18001ed50
lea ecx, [rax + 1]
add rdx, rcx
mov ecx, 0x40
add rdx, rdx
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov r14, rax
test rax, rax
jne 0x18001ed7d
mov r14, rsi
jmp 0x18001edfe
mov edx, edi
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov r9d, eax
lea ecx, [r9 - 1]
cmp word [r14 + rcx*2], 0x5c
je 0x18001eda4
mov eax, 0x5c
mov word [r14 + r9*2], ax
inc r9d
mov r8d, esi
mov rax, 0xffffffffffffffff
nop
inc rax
cmp word [rbx + rax*2], si
jne 0x18001edb0
test rax, rax
je 0x18001edfe
mov rdx, rsi
nop dword [rax]
nop word [rax + rax]
movzx eax, word [rbx + rdx*2]
lea ecx, [r8 + r9]
inc r8d
mov word [r14 + rcx*2], ax
mov edx, r8d
mov rax, 0xffffffffffffffff
nop word [rax + rax]
inc rax
cmp word [rbx + rax*2], si
jne 0x18001edf0
cmp rdx, rax
jb 0x18001edd0
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea rbx, [0x1800c99f0]
mov rdx, 0xffffffffffffffff
mov esi, eax
nop dword [rax + rax]
inc rdx
cmp word [rbx + rdx*2], 0
jne 0x18001ee20
lea r8d, [rax + 1]
mov ecx, 0x40
add rdx, r8
add rdx, rdx
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rdi, rax
test rax, rax
jne 0x18001ee50
xor esi, esi
mov edi, esi
jmp 0x18001eefa
mov edx, esi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov r9d, eax
lea ecx, [r9 - 1]
cmp word [rdi + rcx*2], 0x5c
je 0x18001ee76
mov eax, 0x5c
mov word [rdi + r9*2], ax
inc r9d
xor esi, esi
mov rax, 0xffffffffffffffff
mov r8d, esi
inc rax
cmp word [rbx + rax*2], si
jne 0x18001ee82
test rax, rax
je 0x18001eefa
mov rdx, rsi
nop dword [rax]
nop word [rax + rax]
movzx eax, word [rbx + rdx*2]
lea ecx, [r8 + r9]
inc r8d
mov word [rdi + rcx*2], ax
mov edx, r8d
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp word [rbx + rax*2], si
jne 0x18001eec0
cmp rdx, rax
jb 0x18001eea0
jmp 0x18001eefa
lea r13, [0x1800c9950]
lea rbp, [0x1800c9970]
lea r12, [0x1800c9990]
lea r15, [0x1800c99b0]
lea r14, [0x1800c99d0]
lea rdi, [0x1800c99f0]
cmp dword [rsp + 0x20], 0
mov ebx, 0x800
mov rcx, r13
cmovne ebx, esi
xor edx, edx
mov r8d, ebx
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov qword [0x1800ef380], rax
test rax, rax
jne 0x18001ef2e
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7e
mov eax, esi
jne 0x18001ef33
mov eax, 1
and dword [0x1800ee014], eax
mov r8d, ebx
xor edx, edx
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov qword [0x1800ef378], rax
test rax, rax
jne 0x18001ef60
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7e
mov eax, esi
jne 0x18001ef65
mov eax, 1
and dword [0x1800ee014], eax
mov r8d, ebx
xor edx, edx
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov r8d, ebx
xor edx, edx
mov rcx, r15
mov qword [0x1800ef370], rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov qword [0x1800ef398], rax
test rax, rax
jne 0x18001efa7
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7e
mov eax, esi
jne 0x18001efac
mov eax, 1
and dword [0x1800ee014], eax
mov r8d, ebx
xor edx, edx
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov qword [0x1800ef388], rax
test rax, rax
jne 0x18001efd9
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7e
mov eax, esi
jne 0x18001efde
mov eax, 1
and dword [0x1800ee014], eax
mov r8d, ebx
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov qword [0x1800ef390], rax
test rax, rax
jne 0x18001f009
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7e
jne 0x18001f00e
mov esi, 1
and dword [0x1800ee014], esi
cmp dword [rsp + 0x20], 0
mov rsi, qword [rsp + 0x190]
je 0x18001f059
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov r14, qword [rsp + 0x158]
mov r13, qword [rsp + 0x160]
mov r12, qword [rsp + 0x168]
mov rdi, qword [rsp + 0x198]
mov rbp, qword [rsp + 0x188]
mov r15, qword [rsp + 0x150]
mov eax, dword [0x1800ee014]
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.180068690
add rsp, 0x170
pop rbx
ret