Function at 0x140129cf0
Capabilities:
Get common file path

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
movzx eax, word [rcx]
mov rbp, rcx
cmp ax, 0x5c
je 0x140129837
cmp ax, 0x2f
je 0x1401297ca
mov edx, eax
and edx, 0xffffffdf
sub edx, 0x41
cmp dx, 0x19
ja 0x140129912
cmp word [rcx + 2], 0x3a
je 0x140129928
mov rdi, rcx
mov rbx, rcx
nop dword [rax]
mov rdx, rbx
jmp 0x140129703
cmp ax, 0x5c
je 0x140129713
movzx eax, word [rdx + 2]
add rdx, 2
test ax, ax
je 0x140129713
cmp ax, 0x2f
jne 0x1401296f0
mov r8d, 0x5c
mov word [rdx], r8w
mov rax, rdx
sub rax, rbx
sar rax, 1
mov r8, rax
cmp rax, 1
je 0x1401297e8
cmp rax, 2
jne 0x140129739
cmp word [rbx], 0x2e
je 0x140129820
movzx edx, word [rdx]
cmp dx, 0x5c
je 0x140129804
lea rsi, [r8 + r8]
cmp rbx, rcx
je 0x14012975d
mov r8, rsi
mov rdx, rbx
call sub.msvcrt.dll_memmove
mov rcx, rax
add rcx, rsi
add rbx, rsi
movzx eax, word [rbx]
cmp ax, 0x5c
jne 0x14012977e
nop dword [rax]
movzx eax, word [rbx + 2]
add rbx, 2
cmp ax, 0x5c
je 0x140129770
test ax, ax
jne 0x1401296e8
cmp rdi, rcx
jb 0x1401297c1
nop dword [rax]
xor eax, eax
mov word [rcx], ax
sub rcx, rbp
mov eax, 0xfffffffe
cmp rcx, rax
jg 0x140129a18
sar rcx, 1
mov eax, ecx
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
ret
sub rcx, 2
cmp rdi, rcx
jae 0x140129790
cmp word [rcx - 2], 0x5c
je 0x1401297b8
jmp 0x140129790
cmp word [rcx + 2], 0x2f
mov rdi, rcx
mov rbx, rcx
je 0x14012994b
mov rcx, rdi
jmp 0x1401296e8
cmp word [rbx], 0x2e
mov esi, 2
je 0x140129760
movzx edx, word [rdx]
cmp dx, 0x5c
jne 0x140129746
cmp word [rbx], 0x5c
je 0x140129746
lea r8, [rax + 1]
jmp 0x140129746
cmp word [rbx + 2], 0x2e
je 0x1401298c7
cmp word [rdx], 0x5c
jne 0x140129746
jmp 0x14012980e
cmp word [rcx + 2], 0x5c
mov rdi, rcx
mov rbx, rcx
jne 0x1401297db
movzx ecx, word [rcx + 4]
mov edx, ecx
cmp cx, 0x3f
je 0x1401299d0
lea rdi, [rbp + 4]
test cx, cx
je 0x140129878
nop dword [rax]
add rdi, 2
cmp dx, 0x2f
je 0x140129878
cmp dx, 0x5c
je 0x140129878
movzx edx, word [rdi]
test dx, dx
jne 0x140129860
cmp rbp, rdi
jae 0x140129a2d
mov rdx, rbp
nop dword [rax]
cmp word [rdx], 0x2f
jne 0x140129898
mov r9d, 0x5c
mov word [rdx], r9w
add rdx, 2
movzx eax, word [rdx]
cmp rdx, rdi
jb 0x140129888
mov rdx, rdi
sub rdx, rbp
sub rdx, 1
shr rdx, 1
lea rbx, [rbp + rdx*2 + 2]
mov rcx, rdi
test ax, ax
jne 0x1401297db
jmp 0x140129790
cmp rcx, rdi
jne 0x1401298eb
xor esi, esi
cmp word [rdx], 0x5c
sete sil
lea rsi, [rsi + rsi + 4]
jmp 0x140129760
cmp word [rcx - 2], 0x5c
jne 0x140129904
sub rcx, 2
cmp rdi, rcx
jb 0x1401298e0
mov esi, 4
jmp 0x140129760
sub rcx, 2
cmp rdi, rcx
jae 0x1401298f0
cmp word [rcx - 2], 0x5c
jne 0x140129900
jmp 0x1401298f0
xor ecx, ecx
test ax, ax
je 0x1401297a6
mov rdi, rbp
mov rbx, rbp
jmp 0x1401297db
movzx edx, word [rcx + 4]
cmp dx, 0x5c
je 0x140129942
mov rdi, rcx
mov rbx, rcx
cmp dx, 0x2f
jne 0x1401297db
lea rdi, [rbp + 6]
jmp 0x140129881
cmp word [rcx + 4], 0x3f
je 0x14012995d
movzx ecx, word [rcx + 4]
mov edx, ecx
jmp 0x140129854
cmp word [rbp + 6], 0x2f
mov ecx, 0x3f
jne 0x140129956
lea rdi, [rbp + 8]
mov r8d, 4
lea rdx, [0x140193060]
mov rcx, rdi
call sub.msvcrt.dll_wcsncmp
test eax, eax
je 0x1401299de
movzx edx, word [rbp + 8]
movzx eax, word [rbp]
and edx, 0xffffffdf
sub edx, 0x41
cmp dx, 0x19
ja 0x140129878
cmp word [rbp + 0xa], 0x3a
jne 0x140129878
movzx edx, word [rbp + 0xc]
cmp dx, 0x5c
je 0x1401299bd
cmp dx, 0x2f
jne 0x140129878
lea rdi, [rbp + 0xe]
jmp 0x140129878
cmp word [rbp + 6], 0x5c
je 0x140129969
mov edx, ecx
jmp 0x140129854
movzx edx, word [rbp + 0x10]
movzx eax, word [rbp]
lea rdi, [rbp + 0x10]
test dx, dx
je 0x140129878
add rdi, 2
cmp dx, 0x2f
je 0x140129878
cmp dx, 0x5c
je 0x140129878
movzx edx, word [rdi]
test dx, dx
jne 0x1401299f3
jmp 0x140129878
mov ecx, 0xce
call qword [sym.imp.kernel32.dll_SetLastError]
mov eax, 0xffffffff
jmp 0x1401297ab
mov rbx, rbp
jmp 0x1401298b6
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
movabs rax, 0x5c003f005c005c
mov qword [rcx], rax
mov rsi, rdx
movzx edx, byte [rdx]
mov rbx, rcx
lea rbp, [rcx + 8]
mov eax, edx
and eax, 0xffffffdf
sub eax, 0x41
cmp al, 0x19
ja 0x140129dd8
movzx eax, byte [rsi + 1]
cmp al, 0x3a
je 0x140129f10
cmp dl, 0x5c
je 0x140129f40
mov rdx, rbp
mov ecx, 0x1000
call qword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
mov edi, eax
test eax, eax
je 0x14012a006
cmp eax, 0x1000
jg 0x140129fe8
mov r8d, 4
lea rdx, [0x1401930b0]
mov rcx, rbp
call sub.msvcrt.dll_wcsncmp
test eax, eax
je 0x140129ed0
test edi, edi
js 0x140129ec4
mov r8d, 2
mov rdx, rbp
lea rcx, [0x1401930ba]
call sub.msvcrt.dll_wcsncmp
test eax, eax
jne 0x140129e90
cmp edi, 0xffc
jg 0x140129fe8
movsxd rax, edi
lea rcx, [rbx + 0xc]
mov rdx, rbp
add edi, 2
lea r8, [rax + rax]
call sub.msvcrt.dll_memmove
mov eax, dword [0x1401930d8]
mov ecx, 0x43
mov word [rbx + 0xc], cx
mov dword [rbx + 8], eax
jmp 0x140129e9c
cmp dl, 0x5c
jne 0x140129f98
cmp byte [rsi + 1], 0x5c
je 0x140129f80
mov rdx, rbp
mov ecx, 0x1000
call qword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
mov edi, eax
test eax, eax
je 0x14012a006
cmp eax, 0x1000
jg 0x140129fe8
mov r8d, 4
lea rdx, [0x1401930b0]
mov rcx, rbp
call sub.msvcrt.dll_wcsncmp
test eax, eax
je 0x140129ef0
test edi, edi
js 0x140129ec4
movzx eax, word [rbx + 8]
and eax, 0xffffffdf
sub eax, 0x41
cmp ax, 0x19
ja 0x140129fc0
cmp word [rbx + 0xa], 0x3a
jne 0x140129fc0
movzx eax, word [rbx + 0xc]
cmp ax, 0x5c
je 0x140129e66
cmp ax, 0x2f
jne 0x140129fc0
lea rcx, [rbx + 0xc]
mov r8, rsi
mov edx, 0xffe
call fcn.140127d50
test eax, eax
js 0x140129ec4
mov rcx, rbx
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
jmp 0x1401296a0
cmp edi, 0xffe
jg 0x140129fe8
movsxd rax, edi
mov edx, 0x5c
mov r8, rsi
mov word [rbp + rax*2], dx
mov edx, 0xfff
lea rcx, [rbp + rax*2 + 2]
sub edx, edi
movsxd rdx, edx
call fcn.140127d50
test eax, eax
jns 0x140129e7b
mov rbx, qword [sym.imp.msvcrt.dll__errno]
jmp 0x140129fcf
sub edi, 4
lea rdx, [rbx + 0x10]
mov rcx, rbp
movsxd rax, edi
lea r8, [rax + rax]
call sub.msvcrt.dll_memmove
jmp 0x140129d77
sub edi, 4
lea rdx, [rbx + 0x10]
mov rcx, rbp
movsxd rax, edi
lea r8, [rax + rax]
call sub.msvcrt.dll_memmove
jmp 0x140129e2b
movzx eax, byte [rsi + 2]
cmp al, 0x5c
je 0x140129f20
cmp al, 0x2f
jne 0x140129d37
mov r8, rsi
mov edx, 0x1000
mov rcx, rbp
call fcn.140127d50
test eax, eax
jns 0x140129e7b
jmp 0x140129ec4
cmp al, 0x5c
jne 0x140129deb
lea rcx, [rbx + 0x10]
lea r8, [rsi + 2]
mov edx, 0xffe
movabs rax, 0x5c0043004e0055
mov qword [rbx + 8], rax
call fcn.140127d50
test eax, eax
js 0x140129ec4
mov rcx, rbx
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
jmp 0x1401296a0
cmp byte [rsi + 2], 0x3f
jne 0x140129f48
cmp byte [rsi + 3], 0x5c
jne 0x140129f48
lea r8, [rsi + 4]
jmp 0x140129f23
cmp dl, 0x2f
jne 0x140129d37
cmp byte [rsi + 1], 0x2f
jne 0x140129deb
cmp byte [rsi + 2], 0x3f
jne 0x140129f48
cmp byte [rsi + 3], 0x2f
jne 0x140129f48
jmp 0x140129f8c
mov rbx, qword [sym.imp.msvcrt.dll__errno]
call rbx
mov dword [rax], 2
call rbx
cmp dword [rax], 0x26
je 0x140129ff9
mov eax, 0xffffffff
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rbx, qword [sym.imp.msvcrt.dll__errno]
call rbx
mov dword [rax], 0x26
jmp 0x140129fcf
mov ecx, 0xce
call qword [sym.imp.kernel32.dll_SetLastError]
jmp 0x140129fd6
call qword [sym.imp.kernel32.dll_GetLastError]
mov esi, 2
mov rbx, qword [sym.imp.msvcrt.dll__errno]
cmp eax, 5
mov eax, 0xd
cmove esi, eax
call rbx
mov dword [rax], esi
jmp 0x140129fcf