Function at 0x180027c30
Capabilities:
Get common file path

Disassembly:
push rdi
sub rsp, 0x170
mov rax, qword [0x1800d12b8]
xor rax, rsp
mov qword [rsp + 0x140], rax
mov edi, ecx
mov dword [rsp + 0x20], ecx
lea rcx, [rsp + 0x30]
xor edx, edx
mov r8d, 0x104
call fcn.180002f9f
mov r8d, 0x104
lea rdx, [rsp + 0x30]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x180027cdd
mov edx, eax
lea r9, [0x1800a9450]
or rcx, 0xffffffffffffffff
nop word [rax + rax]
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180027c90
cmp rcx, rdx
ja 0x180027cdd
test eax, eax
je 0x180027cbd
lea rcx, [rsp + 0x30]
add rcx, rdx
nop dword [rax + rax]
cmp byte [rcx], 0x5c
je 0x180027cbd
dec rcx
add eax, 0xffffffff
jne 0x180027cb0
mov eax, eax
lea rcx, [rsp + 0x30]
add rcx, rax
mov r8d, 7
mov rdx, r9
call fcn.1800021f3
test eax, eax
je 0x18002833a
cmp qword [0x1800d2498], 0
jne 0x18002833a
cmp qword [0x1800d2638], 0
jne 0x18002833a
cmp qword [0x1800d2488], 0
jne 0x18002833a
cmp qword [0x1800d24a0], 0
jne 0x18002833a
cmp qword [0x1800d24a8], 0
jne 0x18002833a
cmp qword [0x1800d24b0], 0
jne 0x18002833a
mov qword [rsp + 0x188], rbx
mov qword [rsp + 0x190], rbp
xor ebp, ebp
mov qword [rsp + 0x198], rsi
test edi, edi
mov qword [rsp + 0x168], r12
mov esi, 0x800
mov qword [rsp + 0x160], r13
cmovne esi, ebp
mov qword [rsp + 0x158], r14
mov r12d, ebp
mov qword [rsp + 0x150], r15
mov r14d, ebp
mov dword [rsp + 0x24], esi
mov r15d, ebp
mov qword [rsp + 0x28], rbp
mov dword [0x1800d1024], ebp
je 0x180027e54
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea rbx, [0x1800a9460]
or rdx, 0xffffffffffffffff
mov edi, eax
nop word [rax + rax]
inc rdx
cmp word [rbx + rdx*2], bp
jne 0x180027db0
lea ecx, [rax + 1]
add rdx, rcx
mov ecx, 0x40
add rdx, rdx
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov r13, rax
test rax, rax
jne 0x180027dde
mov edi, dword [rsp + 0x20]
mov r13, rbp
jmp 0x180027e5b
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], 0x5c
je 0x180027e07
mov eax, 0x5c
mov word [r13 + r9*2], ax
inc r9d
mov r8d, ebp
or rax, 0xffffffffffffffff
nop
inc rax
cmp word [rbx + rax*2], bp
jne 0x180027e10
test rax, rax
je 0x180027e4e
mov rdx, rbp
movzx eax, word [rbx + rdx*2]
lea ecx, [r8 + r9]
inc r8d
mov word [r13 + rcx*2], ax
mov edx, r8d
or rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp word [rbx + rax*2], bp
jne 0x180027e40
cmp rdx, rax
jb 0x180027e21
mov edi, dword [rsp + 0x20]
jmp 0x180027e5b
lea r13, [0x1800a9460]
mov r8d, esi
xor edx, edx
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov qword [0x1800d2498], rax
test rax, rax
jne 0x180027e84
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7e
jne 0x1800282c6
test edi, edi
je 0x180027f4b
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea rbx, [0x1800a9480]
or rdx, 0xffffffffffffffff
mov edi, eax
inc rdx
cmp word [rbx + rdx*2], bp
jne 0x180027ea3
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 0x180027ed4
mov edi, dword [rsp + 0x20]
mov r14, rbp
jmp 0x180027f52
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 0x180027efb
mov eax, 0x5c
mov word [r14 + r9*2], ax
inc r9d
mov r8d, ebp
or rax, 0xffffffffffffffff
inc rax
cmp word [rbx + rax*2], bp
jne 0x180027f02
test rax, rax
je 0x180027f45
mov rdx, rbp
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
or rax, 0xffffffffffffffff
inc rax
cmp word [rbx + rax*2], bp
jne 0x180027f37
cmp rdx, rax
jb 0x180027f20
mov edi, dword [rsp + 0x20]
jmp 0x180027f52
lea r14, [0x1800a9480]
mov r8d, esi
xor edx, edx
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov qword [0x1800d2490], rax
test rax, rax
jne 0x180027f7b
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7e
jne 0x1800282c6
test edi, edi
je 0x18002804b
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea rbx, [0x1800a94a0]
or rdx, 0xffffffffffffffff
mov edi, eax
nop word [rax + rax]
inc rdx
cmp word [rbx + rdx*2], bp
jne 0x180027fa0
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 0x180027fd1
mov edi, dword [rsp + 0x20]
mov r15, rbp
jmp 0x180028052
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], 0x5c
je 0x180027ff8
mov eax, 0x5c
mov word [r15 + r9*2], ax
inc r9d
mov r8d, ebp
or rax, 0xffffffffffffffff
nop
inc rax
cmp word [rbx + rax*2], bp
jne 0x180028000
test rax, rax
je 0x180028045
mov rdx, rbp
nop dword [rax]
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
or rax, 0xffffffffffffffff
inc rax
cmp word [rbx + rax*2], bp
jne 0x180028037
cmp rdx, rax
jb 0x180028020
mov edi, dword [rsp + 0x20]
jmp 0x180028052
lea r15, [0x1800a94a0]
mov r8d, esi
xor edx, edx
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov qword [0x1800d24a0], rax
test rax, rax
jne 0x18002807b
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7e
jne 0x1800282c6
test edi, edi
je 0x18002814b
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea rbx, [0x1800a94c0]
or rdx, 0xffffffffffffffff
mov edi, eax
nop word [rax + rax]
inc rdx
cmp word [rbx + rdx*2], bp
jne 0x1800280a0
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 0x1800280d1
mov edi, dword [rsp + 0x20]
mov r12, rbp
jmp 0x180028152
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], 0x5c
je 0x1800280f8
mov eax, 0x5c
mov word [r12 + r9*2], ax
inc r9d
mov r8d, ebp
or rax, 0xffffffffffffffff
nop
inc rax
cmp word [rbx + rax*2], bp
jne 0x180028100
test rax, rax
je 0x180028145
mov rdx, rbp
nop dword [rax]
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
or rax, 0xffffffffffffffff
inc rax
cmp word [rbx + rax*2], bp
jne 0x180028137
cmp rdx, rax
jb 0x180028120
mov edi, dword [rsp + 0x20]
jmp 0x180028152
lea r12, [0x1800a94c0]
mov r8d, esi
xor edx, edx
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov qword [0x1800d24a8], rax
test rax, rax
jne 0x18002817b
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7e
jne 0x1800282c6
test edi, edi
je 0x18002818d
lea rcx, [0x1800a94e0]
call fcn.180022470
jmp 0x180028194
lea rax, [0x1800a94e0]
mov r8d, esi
mov qword [rsp + 0x28], rax
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov qword [0x1800d24b0], rax
test rax, rax
jne 0x1800281c2
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7e
jne 0x1800282c6
test edi, edi
je 0x180028290
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea rbx, [0x1800a9500]
or rdx, 0xffffffffffffffff
mov esi, eax
inc rdx
cmp word [rbx + rdx*2], bp
jne 0x1800281e1
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 0x180028214
mov edi, dword [rsp + 0x20]
mov esi, dword [rsp + 0x24]
jmp 0x180028297
mov edx, esi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov r8d, eax
lea ecx, [r8 - 1]
cmp word [rdi + rcx*2], 0x5c
je 0x18002823a
mov eax, 0x5c
mov word [rdi + r8*2], ax
inc r8d
or rax, 0xffffffffffffffff
nop
inc rax
cmp word [rbx + rax*2], bp
jne 0x180028240
test rax, rax
je 0x180028283
mov rdx, rbp
nop dword [rax]
nop word [rax + rax]
movzx eax, word [rbx + rdx*2]
lea ecx, [r8 + rbp]
inc ebp
mov word [rdi + rcx*2], ax
mov edx, ebp
or rax, 0xffffffffffffffff
inc rax
cmp word [rbx + rax*2], 0
jne 0x180028274
cmp rdx, rax
jb 0x180028260
mov esi, dword [rsp + 0x24]
mov rbp, rdi
mov edi, dword [rsp + 0x20]
jmp 0x180028297
lea rbp, [0x1800a9500]
mov r8d, esi
xor edx, edx
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov qword [0x1800d2488], rax
test rax, rax
jne 0x1800282bc
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7e
jne 0x1800282c6
mov dword [0x1800d1024], 1
mov rsi, qword [rsp + 0x198]
mov rbx, qword [rsp + 0x188]
test edi, edi
je 0x180028312
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov r14, qword [rsp + 0x158]
mov r13, qword [rsp + 0x160]
mov r12, qword [rsp + 0x168]
mov rbp, qword [rsp + 0x190]
mov r15, qword [rsp + 0x150]
mov eax, dword [0x1800d1024]
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.18000459d
add rsp, 0x170
pop rdi
ret