Function at 0x1400b3990
Capabilities:
Get common file path
Get disk information

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x328
mov qword [rsp + 0xf8], 0xfffffffffffffffe
mov rax, qword [0x140197b10]
xor rax, rsp
mov qword [rsp + 0x310], rax
mov rsi, r9
mov qword [rsp + 0xc0], r8
mov r14, rcx
mov qword [rsp + 0x50], rdx
mov rax, qword [rsp + 0x390]
mov qword [rsp + 0xe8], rax
lea rcx, [rsp + 0xa0]
call fcn.140063500
mov qword [rsp + 0xa8], r14
xor r15d, r15d
mov qword [rsp + 0xb0], r15
lea rcx, [rsp + 0x50]
call fcn.14005b560
mov dword [rsp + 0x6c], r15d
mov dword [rsp + 0x94], 2
mov edi, r15d
mov dword [rsp + 0x68], r15d
mov r12d, r15d
mov ebp, r15d
mov ebx, r15d
mov dword [rsp + 0xb8], r15d
mov eax, 0xfffffff8
mov dword [rsp + 0xc8], eax
mov dword [rsp + 0x90], r15d
mov r13d, 1
mov dword [rsp + 0x98], r13d
mov rax, qword [rsp + 0x50]
cmp word [rax], bx
je 0x1400b3be5
lea edi, [r15 + 0x20]
nop dword [rax]
or r8d, 0xffffffff
lea rdx, [rsp + 0x50]
lea rcx, [0x140153a9c]
call fcn.140065780
test al, al
jne 0x1400b3bce
or r8d, 0xffffffff
lea rdx, [rsp + 0x50]
lea rcx, [0x140153a98]
call fcn.140065780
test al, al
jne 0x1400b3bce
or r8d, 0xffffffff
lea rdx, [rsp + 0x50]
lea rcx, [0x140140438]
call fcn.140065780
test al, al
jne 0x1400b3bc9
or r8d, 0xffffffff
lea rdx, [rsp + 0x50]
lea rcx, [0x140147298]
call fcn.140065780
test al, al
jne 0x1400b3bc9
or r8d, 0xffffffff
lea rdx, [rsp + 0x50]
lea rcx, [0x140149954]
call fcn.140065780
test al, al
je 0x1400b3b0a
mov dword [rsp + 0xb8], r13d
jmp 0x1400b3bd2
or r8d, 0xffffffff
lea rdx, [rsp + 0x50]
lea rcx, [0x140153a94]
call fcn.140065780
test al, al
je 0x1400b3b2b
or ebp, 0x10
jmp 0x1400b3bd2
mov r8d, 3
mov r10, qword [rsp + 0x50]
mov rdx, r10
lea rcx, [0x140153a90]
call fcn.14005c510
test al, al
je 0x1400b3b69
or ebp, 0x10
add r10, 6
mov qword [rsp + 0x50], r10
lea rdx, [rsp + 0xc8]
lea rcx, [rsp + 0x50]
call fcn.140066e40
jmp 0x1400b3bd2
or r8d, 0xffffffff
lea rdx, [rsp + 0x50]
lea rcx, str._O:N
call fcn.140065780
test al, al
je 0x1400b3b86
mov ebx, edi
jmp 0x1400b3bd2
or r8d, 0xffffffff
lea rdx, [rsp + 0x50]
lea rcx, str._O:_N
call fcn.140065780
test al, al
je 0x1400b3ba6
mov ebx, 0x60
jmp 0x1400b3bd2
or r8d, 0xffffffff
lea rdx, [rsp + 0x50]
lea rcx, str.cur
call fcn.140065780
test al, al
je 0x1400b3be1
mov dword [rsp + 0x90], r13d
jmp 0x1400b3bd2
or r12d, r13d
jmp 0x1400b3bd2
or r12d, 2
mov rax, qword [rsp + 0x50]
cmp word [rax], 0
jne 0x1400b3a70
mov edi, dword [rsp + 0x68]
or ebp, ebx
mov dword [rsp + 0x78], ebp
lea rcx, [rsp + 0xd8]
call fcn.140063500
nop
lea rbx, [0x14014f7a8]
mov rdx, rbx
lea rcx, [rsp + 0xd0]
call fcn.140071240
nop
mov rdx, rbx
lea rcx, [rsp + 0x70]
call fcn.140071240
nop
mov rdx, rbx
lea rcx, [rsp + 0x88]
call fcn.140071240
nop
lea rcx, [rsp + 0x58]
call fcn.140063500
nop
mov ebx, 0x2c
mov r8d, ebx
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x50]
call fcn.1400668d0
mov byte [rsp + 0x20], 1
xor r9d, r9d
lea r8, [rsp + 0xa0]
mov rdx, qword [rsp + 0x58]
mov rcx, r14
call fcn.14006d870
mov r11, qword [rsp + 0xa0]
mov qword [rsp + 0xb0], r11
lea rcx, [rsp + 0x58]
call fcn.14005b520
xor r8d, r8d
lea rdx, [rsp + 0xd8]
lea rcx, [rsp + 0xb0]
call fcn.140066780
mov r11, qword [rsp + 0xd8]
mov qword [rsp + 0x60], r11
lea ecx, [rbx - 0x23]
test r12d, r12d
jne 0x1400b3d31
movzx eax, word [r11]
test ax, ax
je 0x1400b3d31
lea edx, [rbx + 0x14]
lea ebp, [rbx - 0xc]
lea r8d, [rbx - 8]
lea r9d, [rbx + 0x30]
lea r10d, [rbx - 0xb]
cmp cx, ax
ja 0x1400b3cdc
cmp ax, 0xd
jbe 0x1400b3d24
cmp bp, ax
je 0x1400b3d24
cmp dx, ax
jne 0x1400b3cf0
mov dword [rsp + 0x94], r13d
jmp 0x1400b3d17
cmp r8w, ax
jne 0x1400b3d03
mov dword [rsp + 0x94], 3
jmp 0x1400b3d17
cmp r9w, ax
jne 0x1400b3d0e
or edi, 1
jmp 0x1400b3d17
cmp r10w, ax
jne 0x1400b3d24
or edi, 2
add r11, 2
mov ax, word [r11]
test ax, ax
jne 0x1400b3cd1
mov qword [rsp + 0x60], r11
mov dword [rsp + 0x68], edi
mov dword [rsp + 0x68], edi
lea rcx, [rsp + 0x60]
call fcn.14005b560
test edi, edi
je 0x1400b3d5c
mov rdx, qword [rsp + 0x60]
cmp word [rdx], 0x5c
jne 0x1400b3d77
nop word [rax + rax]
add rdx, 2
cmp word [rdx], 0x5c
je 0x1400b3d50
jmp 0x1400b3d77
test r12d, r12d
jne 0x1400b3d72
lea rdx, [rsp + 0x70]
mov rcx, qword [rsp + 0x60]
call fcn.14002e730
jmp 0x1400b3d81
mov rdx, qword [rsp + 0x60]
lea rcx, [rsp + 0x70]
call fcn.140071360
mov rcx, qword [rsp + 0x50]
cmp bx, word [rcx]
jne 0x1400b3e0a
add rcx, 2
mov qword [rsp + 0x50], rcx
lea rcx, [rsp + 0x58]
call fcn.140063500
nop
mov r8d, ebx
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x50]
call fcn.1400668d0
mov byte [rsp + 0x20], 1
xor r9d, r9d
lea r8, [rsp + 0xa0]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0xa8]
call fcn.14006d870
mov r11, qword [rsp + 0xa0]
mov qword [rsp + 0xb0], r11
lea rcx, [rsp + 0x58]
call fcn.14005b520
xor r8d, r8d
lea rdx, [rsp + 0xd0]
lea rcx, [rsp + 0xb0]
call fcn.140066780
mov rcx, qword [rsp + 0x50]
test r12d, r12d
jne 0x1400b3e94
cmp bx, word [rcx]
jne 0x1400b3e94
add rcx, 2
mov qword [rsp + 0x50], rcx
lea rcx, [rsp + 0x58]
call fcn.140063500
nop
mov r8d, ebx
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x50]
call fcn.1400668d0
mov byte [rsp + 0x20], 1
xor r9d, r9d
lea r8, [rsp + 0xa0]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0xa8]
call fcn.14006d870
mov r11, qword [rsp + 0xa0]
mov qword [rsp + 0xb0], r11
lea rcx, [rsp + 0x58]
call fcn.14005b520
mov r8d, ebx
lea rdx, [rsp + 0x6c]
lea rcx, [rsp + 0xb0]
call fcn.140066b30
mov rcx, qword [rsp + 0x50]
mov eax, dword [rsp + 0x6c]
test eax, eax
mov edx, 0xfffffff8
cmovle eax, edx
mov dword [rsp + 0x6c], eax
cmp word [rcx], 0x2c
je 0x1400b3ef6
lea rcx, [rsp + 0x88]
call fcn.14005b520
nop
lea rcx, [rsp + 0x70]
call fcn.14005b520
nop
lea rcx, [rsp + 0xd0]
call fcn.14005b520
nop
lea rcx, [rsp + 0xd8]
call fcn.14005b520
nop
lea rcx, [rsp + 0xa0]
call fcn.14005b520
mov eax, r13d
jmp 0x1400b467f
add rcx, 2
mov qword [rsp + 0x50], rcx
lea rcx, [rsp + 0x50]
call fcn.14005b560
mov rdx, qword [rsp + 0x50]
lea rcx, [rsp + 0x88]
call fcn.140071480
mov rdi, qword [rsp + 0x88]
mov qword [rsp + 0xe0], r15
test rsi, rsi
je 0x1400b3f3a
mov r13, qword [rsi]
mov qword [rsp + 0x58], r13
jmp 0x1400b3f42
mov r13, r15
mov qword [rsp + 0x58], r15
cmp word [rdi], 0
jne 0x1400b3f6a
test r13, r13
je 0x1400b3f6a
movzx eax, word [r13]
cmp word [r14 + 0x7e], ax
jne 0x1400b3f6a
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
mov rcx, r14
call fcn.140060920
mov edx, 0x32a
lea rcx, [rsp + 0xf0]
call fcn.140063580
nop
mov rbx, qword [rsp + 0xf0]
lea rbp, [rbx + 4]
mov rsi, r15
mov qword [rsp + 0x80], r15
mov dword [rsp + 0x60], r15d
mov eax, 0x8b
and word [r14 + 0xb0], ax
lea ecx, [rax + 0x75]
cmp word [rdi], 0
jne 0x1400b3fc8
test r13, r13
je 0x1400b3fc8
movzx eax, word [r13]
cmp word [r14 + 0x7e], ax
jne 0x1400b3fc8
mov dword [rsp + 0x50], ecx
xor edx, edx
jmp 0x1400b3fd0
xor edx, edx
mov ecx, edx
mov dword [rsp + 0x50], edx
mov rdi, qword [rsp + 0xd0]
cmp word [rdi], 0
je 0x1400b3ff0
mov rax, qword [rsp + 0x88]
cmp word [rax], 0
jne 0x1400b3ff0
test ecx, ecx
je 0x1400b3ff7
mov dword [rsp + 0x98], edx
movsxd r13, ecx
test r12b, 2
je 0x1400b41b0
mov qword [rsp + 0x78], rdx
lea rsi, [0x14019cf50]
mov qword [rsp + 0xc8], rsi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
or r9d, 0xffffffff
xor r8d, r8d
mov rdx, qword [rsp + 0x70]
mov rcx, r14
call fcn.1400307c0
test rax, rax
jne 0x1400b4057
lea ebx, [rax + 2]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
lea rcx, [rsp + 0x78]
call fcn.14005b520
jmp 0x1400b45f9
mov rdx, qword [rax]
lea rcx, [rsp + 0x78]
call fcn.140071480
nop
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rbx, qword [rsp + 0x78]
xor ecx, ecx
mov qword [rsp + 0xc8], rcx
cmp word [rbx], cx
je 0x1400b4191
mov ebp, 0xfeff
mov r12, qword [rsp + 0x58]
test byte [r14 + 0xb0], 0xef
jne 0x1400b4191
mov r8, rbx
movzx eax, word [rbx]
test ax, ax
je 0x1400b40c8
nop dword [rax]
cmp ax, 0xd
je 0x1400b40c8
cmp ax, 0xa
je 0x1400b40c8
add rbx, 2
mov ax, word [rbx]
test ax, ax
jne 0x1400b40b0
movzx esi, word [rbx]
mov word [rbx], cx
mov rdx, rdi
mov rcx, r14
call fcn.140061290
cmp si, 0xd
jne 0x1400b40f0
mov eax, 0xa
cmp ax, word [rbx + 2]
jne 0x1400b40f5
add rbx, 4
jmp 0x1400b40f9
test si, si
je 0x1400b40f9
add rbx, 2
inc r15d
test r13, r13
je 0x1400b4137
lea rax, [r12 + 2]
mov qword [rsp + 0xe0], rax
lea rax, [0x14014f7a8]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rsp + 0xe0]
mov rdx, qword [rsp + 0xc0]
mov rcx, r14
call fcn.1400a71e0
jmp 0x1400b4165
mov rdx, qword [rsp + 0x88]
cmp word [rdx], 0
je 0x1400b4165
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8, qword [rsp + 0xc0]
mov rcx, r14
call fcn.14004d38c
movzx eax, word [r14 + 0xb0]
mov ecx, 0x100
test cx, ax
je 0x1400b4182
and ax, bp
mov word [r14 + 0xb0], ax
cmp word [rbx], 0
mov ecx, 0
jne 0x1400b4090
lea rcx, [rsp + 0xc8]
call fcn.14005b520
nop
lea rcx, [rsp + 0x78]
call fcn.14005b520
xor ebx, ebx
jmp 0x1400b45f9
cmp r12d, 1
jne 0x1400b42f9
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x78], rdx
cmp word [rax], 0
je 0x1400b42e8
mov ebx, 0xfeff
mov r12, qword [rsp + 0x58]
mov esi, 9
test byte [r14 + 0xb0], 0xef
jne 0x1400b42e8
mov rdx, rax
movzx ecx, word [rax]
test cx, cx
je 0x1400b4223
mov r8d, 0x20
cmp si, cx
ja 0x1400b420c
cmp cx, 0xd
jbe 0x1400b4223
cmp r8w, cx
je 0x1400b4223
add rax, 2
mov qword [rsp + 0x50], rax
mov cx, word [rax]
test cx, cx
jne 0x1400b4201
sub rax, rdx
sar rax, 1
mov r8d, eax
lea rcx, [rsp + 0x78]
call fcn.140063740
lea rcx, [rsp + 0x50]
call fcn.14005b560
mov r8, qword [rsp + 0x78]
mov rdx, rdi
mov rcx, r14
call fcn.140061290
inc r15d
test r13, r13
je 0x1400b428e
lea rax, [r12 + 2]
mov qword [rsp + 0xe0], rax
lea rax, [0x14014f7a8]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rsp + 0xe0]
mov rdx, qword [rsp + 0xc0]
mov rcx, r14
call fcn.1400a71e0
jmp 0x1400b42bc
mov rdx, qword [rsp + 0x88]
cmp word [rdx], 0
je 0x1400b42bc
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8, qword [rsp + 0xc0]
mov rcx, r14
call fcn.14004d38c
movzx eax, word [r14 + 0xb0]
mov ecx, 0x100
test cx, ax
je 0x1400b42d9
and ax, bx
mov word [r14 + 0xb0], ax
mov rax, qword [rsp + 0x50]
cmp word [rax], 0
jne 0x1400b41e2
lea rcx, [rsp + 0x78]
call fcn.14005b520
xor ebx, ebx
jmp 0x1400b45f9
mov rcx, qword [rsp + 0x70]
call fcn.14002e004
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.140071360
mov r11, qword [rsp + 0x70]
cmp word [r11], 0
je 0x1400b45f7
xor r12d, r12d
movzx r15d, r12w
mov r13d, dword [rsp + 0x68]
test r13d, r13d
je 0x1400b43e3
cmp dword [rsp + 0x90], r12d
je 0x1400b437b
mov word [rsp + 0x100], r12w
lea rdx, [rsp + 0x100]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov r15w, word [rsp + 0x100]
cmp r15w, 0x61
jb 0x1400b437b
cmp r15w, 0x7a
ja 0x1400b437b
mov eax, 0xffdf
and r15w, ax
mov word [rbp + 2], r12w
mov word [rbp], r12w
mov word [rbx + 2], r12w
mov word [rbx], r12w
mov rdx, rbp
mov ecx, 0x324
call qword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
mov r12, rbp
and r13b, 2
mov rbx, rbp
cmp word [rbp], 0
je 0x1400b43ca
nop dword [rax]
mov r12, rbx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cdqe
lea rbx, [rbx + rax*2]
cmp word [rbx], 0
jne 0x1400b43b0
mov rsi, rbp
test r13b, r13b
cmovne rsi, r12
mov r13d, dword [rsp + 0x68]
mov r12d, dword [rsp + 0x50]
jmp 0x1400b450b
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x80], r11
mov qword [rsp + 0x70], rax
mov r12d, dword [rsp + 0x50]
xor ebx, ebx
jmp 0x1400b4403
xor ebx, ebx
test r12d, r12d
jne 0x1400b4424
mov rax, qword [rsp + 0x88]
cmp word [rax], r12w
jne 0x1400b4424
cmp dword [rsp + 0x98], r12d
je 0x1400b45ce
cmp dword [rsp + 0xb8], 0
je 0x1400b444c
movzx ecx, word [r11]
test cx, cx
je 0x1400b444c
cmp word [r11 + 2], 0x3a
jne 0x1400b444c
call fcn.1400cf2a0
test eax, eax
je 0x1400b4502
lea rcx, [rsp + 0x50]
call fcn.140063500
nop
xor r8d, r8d
lea rdx, [rsp + 0x50]
mov rcx, qword [rsp + 0x80]
call fcn.14006f2b0
mov r11d, r12d
or r11d, dword [rsp + 0x78]
or r11d, dword [rsp + 0x94]
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0x48], rax
mov eax, dword [rsp + 0xc8]
mov dword [rsp + 0x40], eax
lea rax, [rsp + 0x6c]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], r11d
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0xc0]
mov r8, qword [rsp + 0x50]
mov rdx, rdi
mov rcx, r14
call fcn.1400b3170
add dword [rsp + 0x60], eax
movzx eax, word [r14 + 0xb0]
mov ecx, 0x100
test cx, ax
je 0x1400b44f8
mov ecx, 0xfeff
and ax, cx
mov word [r14 + 0xb0], ax
lea rcx, [rsp + 0x50]
call fcn.14005b520
test r13d, r13d
je 0x1400b45f0
movsxd rbx, dword [rsp + 0x90]
cmp word [rsi], 0
je 0x1400b45e7
cmp dword [rsp + 0x6c], 0
je 0x1400b45de
test byte [r14 + 0xb0], 0xef
jne 0x1400b45d5
mov rdx, rsi
lea rcx, [rsp + 0x80]
call fcn.140071480
mov rdx, qword [rsp + 0x70]
lea rcx, [rsp + 0x80]
call fcn.140063600
test rbx, rbx
jne 0x1400b45ac
test r13b, 2
je 0x1400b4584
sub rsi, 2
cmp rsi, rbp
jbe 0x1400b4595
nop dword [rax]
lea rax, [rsi - 2]
cmp word [rax], 0
je 0x1400b4595
mov rsi, rax
cmp rax, rbp
ja 0x1400b4570
jmp 0x1400b4595
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cdqe
lea rsi, [rsi + rax*2]
mov r11, qword [rsp + 0x80]
cmp r15w, word [r11]
jne 0x1400b4401
jmp 0x1400b4513
mov rax, qword [rsp + 0x80]
mov word [rax], r15w
xor ebx, ebx
mov dword [rsp + 0x90], ebx
mov r11, qword [rsp + 0x80]
jmp 0x1400b4403
mov r15d, dword [rsp + 0x60]
jmp 0x1400b45f9
mov r15d, dword [rsp + 0x60]
xor ebx, ebx
jmp 0x1400b45f9
mov r15d, dword [rsp + 0x60]
xor ebx, ebx
jmp 0x1400b45f9
mov r15d, dword [rsp + 0x60]
xor ebx, ebx
jmp 0x1400b45f9
mov r15d, dword [rsp + 0x60]
jmp 0x1400b45f9
xor ebx, ebx
mov eax, 0x8b
and word [r14 + 0xb0], ax
cmp dword [rsp + 0x98], 0
je 0x1400b461f
mov r8, rdi
mov edx, r15d
mov rcx, r14
call fcn.140065f20
nop
lea rcx, [rsp + 0x80]
call fcn.14005b520
nop
lea rcx, [rsp + 0xf0]
call fcn.14005b520
nop
lea rcx, [rsp + 0x88]
call fcn.14005b520
nop
lea rcx, [rsp + 0x70]
call fcn.14005b520
nop
lea rcx, [rsp + 0xd0]
call fcn.14005b520
nop
lea rcx, [rsp + 0xd8]
call fcn.14005b520
nop
lea rcx, [rsp + 0xa0]
call fcn.14005b520
mov eax, ebx
mov rcx, qword [rsp + 0x310]
xor rcx, rsp
call fcn.14010bcc0
add rsp, 0x328
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret