Function at 0x180033840
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov rax, qword [0x18004e508]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov rsi, rdx
mov qword [rsp + 0x20], rdx
mov r15, rcx
xor r13d, r13d
mov rax, qword [rcx]
cmp dword [rax - 0x10], r13d
jl 0x1800339e6
lea rdx, str.DeviceLanmanRedirector_
mov rcx, rax
call qword [sym.imp.VCRUNTIME140.dll_wcsstr]
mov rcx, rax
mov rax, qword [r15]
test rcx, rcx
je 0x18003392d
sub rcx, rax
sar rcx, 1
test ecx, ecx
jne 0x18003392d
lea rdx, [0x1800461d4]
mov r12, 0xffffffffffffffff
mov rax, r12
nop dword [rax]
inc rax
cmp word [rdx + rax*2], r13w
jne 0x1800338c0
mov r8d, eax
mov rcx, rsi
call fcn.180007090
mov rax, qword [r15]
mov r9d, dword [rax - 0x10]
add r9d, 0xffffffe7
mov r8d, 0x19
lea rdx, [rsp + 0x20]
mov rcx, r15
call fcn.18000ac70
nop
mov rbx, qword [rsp + 0x20]
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
mov rcx, rsi
call fcn.180007090
nop
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r12d
sub r12d, 1
jg 0x180033922
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov r13d, 1
jmp 0x180033f1e
cmp dword [rax - 0x10], r13d
jl 0x1800339e6
lea rdx, str.DeviceMup_
mov rcx, rax
call qword [sym.imp.VCRUNTIME140.dll_wcsstr]
mov rcx, rax
test rax, rax
mov rax, qword [r15]
je 0x1800339e6
sub rcx, rax
sar rcx, 1
test ecx, ecx
jne 0x1800339e6
lea rdx, [0x1800461d4]
mov r12, 0xffffffffffffffff
mov rax, r12
inc rax
cmp word [rdx + rax*2], r13w
jne 0x180033975
mov r8d, eax
mov rcx, rsi
call fcn.180007090
mov rax, qword [r15]
mov r9d, dword [rax - 0x10]
add r9d, 0xfffffff4
mov r8d, 0xc
lea rdx, [rsp + 0x20]
mov rcx, r15
call fcn.18000ac70
nop
mov rbx, qword [rsp + 0x20]
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
mov rcx, rsi
call fcn.180007090
nop
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r12d
sub r12d, 1
jg 0x180033922
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov r13d, 1
jmp 0x180033f1e
cmp dword [rax - 0x10], 0xc
jg 0x1800339fd
lea rcx, [rax - 0x18]
call fcn.180006e10
mov rbx, rax
jmp 0x180033aa2
mov rcx, qword [rax - 0x18]
test rcx, rcx
je 0x180033a1c
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
test rax, rax
je 0x180033a1c
mov rdi, qword [r15]
mov rax, rdi
jmp 0x180033a3c
call fcn.1800015f0
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
mov rcx, rax
mov rdi, qword [r15]
mov rax, rdi
test rcx, rcx
je 0x180033fe0
test rax, rax
je 0x180033fd5
mov rax, qword [rcx]
mov edx, 0xc
lea r8d, [rdx - 0xa]
call qword [rax]
mov rbx, rax
test rax, rax
je 0x180033ff6
add rax, 0x18
cmp dword [rax - 0xc], 0xc
jl 0x180033fd5
mov dword [rax - 0x10], 0xc
mov word [rax + 0x18], r13w
test rax, rax
jne 0x180033a92
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [rax], 0x16
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo]
jmp 0x180033aa2
movups xmm0, xmmword [rdi]
movups xmmword [rax], xmm0
movsd xmm1, qword [rdi + 0x10]
movsd qword [rax + 0x10], xmm1
lea rdx, str.SystemRoot_
mov r12, 0xffffffffffffffff
mov rcx, r12
movzx eax, word [rbx + rcx*2 + 0x1a]
cmp ax, word [rdx + rcx*2 + 2]
jne 0x180033ad8
add rcx, 2
cmp rcx, 0xd
je 0x180033bc3
movzx eax, word [rbx + rcx*2 + 0x18]
cmp ax, word [rdx + rcx*2]
je 0x180033ab3
sbb edi, edi
or edi, 1
mov rdx, rbx
mov eax, r12d
lock xadd dword [rbx + 0x10], eax
sub eax, 1
jg 0x180033af6
mov rcx, qword [rbx]
mov rax, qword [rcx]
call qword [rax + 8]
test edi, edi
jne 0x180033bcb
lea rbx, [0x1800516e0]
cmp word [0x1800516e0], r13w
jne 0x180033b1d
mov edx, 0x104
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov rax, r12
inc rax
cmp word [rbx + rax*2], r13w
jne 0x180033b20
mov r8d, eax
mov rdx, rbx
mov rcx, rsi
call fcn.180007090
mov rdx, qword [rsi]
movsxd rax, dword [rdx - 0x10]
lea ecx, [rax - 1]
test ecx, ecx
js 0x180033fd5
cmp ecx, eax
jg 0x180033fd5
cmp word [rdx + rax*2 - 2], 0x5c
je 0x180033b67
mov edx, 0x5c
mov rcx, rsi
call fcn.180006970
mov rax, qword [r15]
mov r9d, dword [rax - 0x10]
add r9d, 0xfffffff4
mov r8d, 0xc
lea rdx, [rsp + 0x20]
mov rcx, r15
call fcn.18000ac70
nop
mov rbx, qword [rsp + 0x20]
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
mov rcx, rsi
call fcn.180007090
nop
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r12d
sub r12d, 1
jg 0x180033922
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov r13d, 1
jmp 0x180033f1e
mov edi, r13d
jmp 0x180033add
mov rax, qword [r15]
cmp dword [rax - 0x10], 4
jg 0x180033be5
lea rcx, [rax - 0x18]
call fcn.180006e10
mov rbx, rax
jmp 0x180033c80
mov rcx, qword [rax - 0x18]
test rcx, rcx
je 0x180033c04
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
test rax, rax
je 0x180033c04
mov rdi, qword [r15]
mov rax, rdi
jmp 0x180033c24
call fcn.1800015f0
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
mov rcx, rax
mov rdi, qword [r15]
mov rax, rdi
test rcx, rcx
je 0x180033fe0
test rax, rax
je 0x180033fd5
mov rax, qword [rcx]
mov edx, 4
lea r8d, [rdx - 2]
call qword [rax]
mov rbx, rax
test rax, rax
je 0x180033ff6
lea rcx, [rax + 0x18]
cmp dword [rcx - 0xc], 4
jl 0x180033fd5
mov dword [rcx - 0x10], 4
mov word [rcx + 8], r13w
test rcx, rcx
jne 0x180033c7a
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [rax], 0x16
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo]
jmp 0x180033c80
mov rax, qword [rdi]
mov qword [rcx], rax
lea rdx, [rbx + 0x18]
mov rcx, r13
lea r8, str.___
nop
movzx eax, word [rdx + rcx*2]
inc rcx
cmp ax, word [r8 + rcx*2 - 2]
jne 0x180033caa
cmp rcx, 5
jne 0x180033c90
mov ebx, r13d
jmp 0x180033caf
sbb ebx, ebx
or ebx, 1
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x180033cc9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, qword [r15]
mov ecx, dword [rax - 0x10]
test ebx, ebx
jne 0x180033d05
lea r9d, [rcx - 4]
lea r8d, [rbx + 4]
lea rdx, [rsp + 0x20]
mov rcx, r15
call fcn.18000ac70
nop
lea rdx, [rsp + 0x20]
mov rcx, rsi
call fcn.1800095f0
nop
mov rdx, qword [rsp + 0x20]
add rdx, 0xffffffffffffffe8
jmp 0x18003390d
test ecx, ecx
js 0x180033fd5
cmp word [rax], 0x5c
je 0x180033d29
mov rdx, r15
mov rcx, rsi
call fcn.1800095f0
mov r13d, 1
jmp 0x180033f1e
cmp dword [0x1800516d8], r13d
jne 0x180033d41
call fcn.1800336d0
mov dword [0x1800516d8], 1
mov dword [rsp + 0x28], r13d
nop word [rax + rax]
mov rax, qword [0x1800516a0]
mov rbx, qword [rax]
cmp rbx, rax
je 0x180033efc
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rbx + 0x20]
mov ecx, dword [rax - 0x10]
mov esi, r13d
test ecx, ecx
cmovns esi, ecx
mov rcx, qword [r15]
add rcx, 0xffffffffffffffe8
cmp esi, dword [rcx + 8]
jl 0x180033d9e
call fcn.180006e10
lea rdi, [rax + 0x18]
mov qword [rsp + 0x38], rdi
jmp 0x180033e63
mov rcx, qword [rcx]
test rcx, rcx
je 0x180033dbc
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
test rax, rax
je 0x180033dbc
mov r14, qword [r15]
mov rbp, r14
jmp 0x180033ddc
call fcn.1800015f0
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
mov rcx, rax
mov r14, qword [r15]
mov rbp, r14
test rax, rax
je 0x180033fe0
test rbp, rbp
jne 0x180033de9
test esi, esi
jne 0x180033fd5
mov rax, qword [rcx]
mov r8d, 2
mov edx, esi
call qword [rax]
test rax, rax
je 0x180033ff6
lea rdi, [rax + 0x18]
mov qword [rsp + 0x38], rdi
test esi, esi
js 0x180033fd5
cmp esi, dword [rdi - 0xc]
jg 0x180033fd5
mov dword [rdi - 0x10], esi
movsxd rax, esi
lea r8, [rax + rax]
mov word [r8 + rdi], r13w
test r8, r8
je 0x180033e63
test rdi, rdi
je 0x180033e50
mov rcx, rdi
test rbp, rbp
je 0x180033e44
mov rdx, rbp
call sub.VCRUNTIME140.dll_memcpy
jmp 0x180033e63
xor edx, edx
call sub.VCRUNTIME140.dll_memset
test r14, r14
jne 0x180033e63
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [rax], 0x16
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo]
nop
mov rdx, qword [rbx + 0x20]
test rdx, rdx
je 0x180033feb
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
je 0x180033f46
lea rdx, [rdi - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x180033e9b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x19], 0
je 0x180033ec8
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], 0
jne 0x180033ec3
nop
cmp rbx, qword [rax + 0x10]
jne 0x180033ec3
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], 0
je 0x180033eb0
mov rbx, rax
jmp 0x180033eef
mov rbx, rax
mov rcx, qword [rax]
cmp byte [rcx + 0x19], 0
jne 0x180033eef
nop dword [rax]
nop dword [rax + rax]
mov rbx, rcx
mov rax, qword [rcx]
mov rcx, rax
cmp byte [rax + 0x19], 0
je 0x180033ee0
cmp rbx, qword [0x1800516a0]
jne 0x180033d70
call fcn.1800336d0
mov ecx, dword [rsp + 0x28]
inc ecx
mov dword [rsp + 0x28], ecx
cmp ecx, 2
jl 0x180033d50
mov rcx, qword [rsp + 0x20]
call fcn.180006ee0
mov eax, r13d
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.18002ce50
mov rbx, qword [rsp + 0xa0]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rdx, qword [rbx + 0x28]
mov r8d, dword [rdx - 0x10]
mov rcx, qword [rsp + 0x20]
call fcn.180007090
mov rax, qword [rbx + 0x20]
mov r8d, dword [rax - 0x10]
mov rax, qword [r15]
mov r9d, dword [rax - 0x10]
sub r9d, r8d
lea rdx, [rsp + 0x30]
mov rcx, r15
call fcn.18000ac70
nop
mov rdx, qword [rsp + 0x30]
lea rbx, [rdx - 0x18]
mov r8d, dword [rbx + 8]
mov rcx, qword [rsp + 0x20]
call fcn.180007090
nop
mov eax, r12d
lock xadd dword [rbx + 0x10], eax
sub eax, 1
jg 0x180033fa9
mov rcx, qword [rbx]
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + 8]
mov r13d, 1
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r12d
sub r12d, r13d
jg 0x180033f1e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
jmp 0x180033f1e
mov ecx, 0x80070057
call fcn.180001450
int3
mov ecx, 0x80004005
call fcn.180001450
nop
mov ecx, 0x80004005
call fcn.180001450
nop
call fcn.180006ed0
int3