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

Disassembly:
mov rcx, rdx
mov rdx, r8
jmp 0x14024f690
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x440]
sub rsp, 0x540
mov rax, qword [0x140425440]
xor rax, rsp
mov qword [rbp + 0x430], rax
mov r15, rdx
mov r13, rcx
xor ebx, ebx
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], rbx
lea rcx, [rsp + 0x70]
call fcn.14014cd80
mov rcx, r15
call fcn.1400033c0
xor edx, edx
mov rcx, r15
call fcn.1400042c0
mov rsi, 0xffffffffffffffff
mov eax, dword [rsp + 0x7c]
test eax, eax
jle 0x14024fa42
mov r14, qword [rsp + 0x70]
mov r12d, eax
mov edi, 2
nop
mov rcx, qword [r14]
mov qword [rsp + 0x58], rcx
mov eax, dword [rcx - 0x10]
nop
test eax, 0x30000000
jne 0x14024f727
lock inc dword [rcx - 0x10]
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x60], rax
mov ecx, dword [rax - 0x10]
nop
test ecx, 0x30000000
jne 0x14024f741
lock inc dword [rax - 0x10]
lea rdx, [rsp + 0x60]
mov rcx, r15
call fcn.14017d5a0
mov rax, qword [r14]
cmp byte [rax], 0
je 0x14024f901
mov rcx, r14
call fcn.14014db70
cmp eax, 3
je 0x14024f774
test eax, eax
je 0x14024f774
cmp eax, 6
jb 0x14024f901
mov rcx, qword [r14]
mov qword [rsp + 0x60], rcx
mov eax, dword [rcx - 0x10]
nop
test eax, 0x30000000
jne 0x14024f78b
lock inc dword [rcx - 0x10]
lea rdx, [rsp + 0x60]
lea rcx, [rbp - 0x70]
call fcn.14014dbf0
nop
mov rdx, rax
lea rcx, [rsp + 0x68]
call fcn.140015780
mov dword [rsp + 0x38], ebx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
xor r9d, r9d
mov r8d, 0x40
lea rdx, [rbp - 0x60]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
mov ebx, eax
mov rdx, qword [rbp - 0x70]
mov ecx, dword [rdx - 0x10]
nop
test ecx, 0x30000000
jne 0x14024f7f9
mov ecx, esi
lock xadd dword [rdx - 0x10], ecx
dec ecx
cmp ecx, 0xffffffff
jne 0x14024f7f9
lea rcx, [rdx - 0x10]
call fcn.1400da0f0
test ebx, ebx
jne 0x14024f803
xor eax, eax
mov word [rbp - 0x60], ax
lea rdx, [rbp - 0x60]
lea rcx, [rsp + 0x48]
call fcn.14001a140
nop
mov rax, qword [rsp + 0x48]
cmp byte [rax], 0
jne 0x14024f891
lea rdx, str.Hard_Drive
lea rcx, [rbp - 0x80]
call fcn.140019df0
nop
lea rdx, [rbp - 0x80]
lea rcx, [rbp - 0x78]
call fcn.14017f4e0
nop
mov rcx, qword [rbp - 0x80]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14024f85f
mov eax, esi
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14024f85f
call fcn.1400da0f0
mov rax, qword [rsp + 0x48]
mov rcx, qword [rbp - 0x78]
mov qword [rsp + 0x48], rcx
mov qword [rbp - 0x78], rax
lea rcx, [rax - 0x10]
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14024f891
mov eax, esi
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14024f891
call fcn.1400da0f0
test edi, edi
jle 0x14024f8dd
mov rax, qword [rsp + 0x58]
mov rbx, rsi
nop dword [rax]
inc rbx
cmp byte [rax + rbx], 0
jne 0x14024f8a0
movsxd rdi, edi
lea rdx, [rdi + rbx]
lea rcx, [rsp + 0x58]
call fcn.14016a9f0
movsxd rbx, ebx
add rbx, qword [rsp + 0x58]
mov r8, rdi
lea rdx, [0x14037faf0]
mov rcx, rbx
call fcn.1402a26b0
mov byte [rdi + rbx], 0
mov edi, 2
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x58]
call fcn.14017f700
mov dl, 0x5d
mov rcx, rax
call fcn.140169040
nop
mov rcx, qword [rsp + 0x48]
jmp 0x14024f9c2
mov rcx, r14
call fcn.14014db70
cmp eax, 5
jne 0x14024f9e2
lea rdx, str.CD_DVD_drive
lea rcx, [rsp + 0x50]
call fcn.140019df0
nop
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x40]
call fcn.14017f4e0
nop
mov rcx, qword [rsp + 0x50]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14024f95a
mov eax, esi
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14024f95a
call fcn.1400da0f0
nop
test edi, edi
jle 0x14024f9a3
mov rax, qword [rsp + 0x58]
mov rbx, rsi
inc rbx
cmp byte [rax + rbx], 0
jne 0x14024f966
movsxd rdi, edi
lea rdx, [rdi + rbx]
lea rcx, [rsp + 0x58]
call fcn.14016a9f0
movsxd rbx, ebx
add rbx, qword [rsp + 0x58]
mov r8, rdi
lea rdx, [0x14037fadc]
mov rcx, rbx
call fcn.1402a26b0
mov byte [rdi + rbx], 0
mov edi, 2
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x58]
call fcn.14017f700
mov dl, 0x5d
mov rcx, rax
call fcn.140168f20
nop
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
test eax, 0x30000000
nop
jne 0x14024f9e2
mov eax, esi
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14024f9e2
call fcn.1400da0f0
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x60], rax
mov ecx, dword [rax - 0x10]
nop
test ecx, 0x30000000
jne 0x14024f9fc
lock inc dword [rax - 0x10]
lea rdx, [rsp + 0x60]
mov rcx, r13
call fcn.14017d5a0
nop
mov rcx, qword [rsp + 0x58]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14024fa2f
mov eax, esi
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14024fa2f
call fcn.1400da0f0
add r14, 8
sub r12, 1
mov ebx, 0
jne 0x14024f710
lea rbx, [0x140379908]
mov qword [rsp + 0x40], rbx
lea rdx, [rsp + 0x40]
mov rcx, r15
call fcn.14017d5a0
mov qword [rsp + 0x40], rbx
lea rdx, [rsp + 0x40]
mov rcx, r13
call fcn.14017d5a0
xor r9d, r9d
mov r8d, 5
lea rdx, [rbp + 0x20]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x14024fad1
lea rdx, [rbp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.14001a140
nop
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x48]
call fcn.140178d10
nop
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14024faca
mov eax, esi
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14024faca
call fcn.1400da0f0
mov rax, qword [rsp + 0x48]
jmp 0x14024fad9
mov rax, rbx
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x40], rax
mov ecx, dword [rax - 0x10]
nop
test ecx, 0x30000000
jne 0x14024faee
lock inc dword [rax - 0x10]
lea rdx, [rsp + 0x40]
mov rcx, r15
call fcn.14017d5a0
mov rcx, qword [rsp + 0x48]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14024fb20
mov eax, esi
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14024fb20
call fcn.1400da0f0
lea rdx, str.Documents
lea rcx, [rsp + 0x40]
call fcn.140019df0
nop
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x50]
call fcn.14017f4e0
nop
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14024fb67
mov eax, esi
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14024fb67
call fcn.1400da0f0
lea rdx, [rsp + 0x50]
mov rcx, r13
call fcn.14017d5a0
xor r9d, r9d
mov r8d, SafeArrayGetDim
lea rdx, [rbp + 0x20]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x14024fbd8
lea rdx, [rbp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.14001a140
nop
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x48]
call fcn.140178d10
nop
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14024fbd1
mov eax, esi
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14024fbd1
call fcn.1400da0f0
mov rax, qword [rsp + 0x48]
jmp 0x14024fbe0
mov rax, rbx
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x40], rax
mov ecx, dword [rax - 0x10]
nop
test ecx, 0x30000000
jne 0x14024fbf5
lock inc dword [rax - 0x10]
lea rdx, [rsp + 0x40]
mov rcx, r15
call fcn.14017d5a0
mov rcx, qword [rsp + 0x48]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14024fc27
mov eax, esi
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14024fc27
call fcn.1400da0f0
lea rdx, str.Music
lea rcx, [rsp + 0x40]
call fcn.140019df0
nop
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x50]
call fcn.14017f4e0
nop
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14024fc6e
mov eax, esi
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14024fc6e
call fcn.1400da0f0
lea rdx, [rsp + 0x50]
mov rcx, r13
call fcn.14017d5a0
xor r9d, r9d
mov r8d, 0x27
lea rdx, [rbp + 0x20]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x14024fcdf
lea rdx, [rbp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.14001a140
nop
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x48]
call fcn.140178d10
nop
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14024fcd8
mov eax, esi
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14024fcd8
call fcn.1400da0f0
mov rax, qword [rsp + 0x48]
jmp 0x14024fce7
mov rax, rbx
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x40], rax
mov ecx, dword [rax - 0x10]
nop
test ecx, 0x30000000
jne 0x14024fcfc
lock inc dword [rax - 0x10]
lea rdx, [rsp + 0x40]
mov rcx, r15
call fcn.14017d5a0
mov rcx, qword [rsp + 0x48]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14024fd2e
mov eax, esi
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14024fd2e
call fcn.1400da0f0
lea rdx, str.Pictures
lea rcx, [rsp + 0x40]
call fcn.140019df0
nop
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x50]
call fcn.14017f4e0
nop
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14024fd75
mov eax, esi
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14024fd75
call fcn.1400da0f0
lea rdx, [rsp + 0x50]
mov rcx, r13
call fcn.14017d5a0
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp + 0x20]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x14024fde3
lea rdx, [rbp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.14001a140
nop
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x48]
call fcn.140178d10
nop
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14024fddc
mov eax, esi
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14024fddc
call fcn.1400da0f0
mov rbx, qword [rsp + 0x48]
jmp 0x14024fde8
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x40], rbx
mov eax, dword [rbx - 0x10]
nop
test eax, 0x30000000
jne 0x14024fdfc
lock inc dword [rbx - 0x10]
lea rdx, [rsp + 0x40]
mov rcx, r15
call fcn.14017d5a0
mov rcx, qword [rsp + 0x48]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14024fe2e
mov eax, esi
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x14024fe2e
call fcn.1400da0f0
lea rdx, str.Desktop
lea rcx, [rsp + 0x40]
call fcn.140019df0
nop
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x50]
call fcn.14017f4e0
nop
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x14024fe73
lock xadd dword [rcx], esi
dec esi
cmp esi, 0xffffffff
jne 0x14024fe73
call fcn.1400da0f0
lea rdx, [rsp + 0x50]
mov rcx, r13
call fcn.14017d5a0
nop
lea rcx, [rsp + 0x70]
call fcn.1400033c0
mov rcx, qword [rsp + 0x70]
call fcn.1400e0818
mov rcx, qword [rbp + 0x430]
xor rcx, rsp
call fcn.1400d9d70
mov rbx, qword [rsp + 0x590]
add rsp, 0x540
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret