Function at 0x140003dc4
Capabilities:
Create directory
Get disk information

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xe0
mov qword [rbp - 0x31], 0xfffffffffffffffe
mov qword [rax + 0x20], rbx
mov rax, qword [0x140021410]
xor rax, rsp
mov qword [rbp + 0x17], rax
mov rbx, r8
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rdx
mov r13, rcx
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x69], xmm0
xor edi, edi
mov qword [rbp - 0x59], rdi
cmp qword [r8 + 0x18], 8
jb 0x140003e21
mov rcx, qword [r8]
jmp 0x140003e24
mov rcx, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
nop dword [rax + rax]
test eax, eax
jne 0x140003eca
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
cmp eax, 0xb7
je 0x140003eca
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
cmp eax, 3
jne 0x140004355
cmp qword [rbx + 0x10], 3
jne 0x140004355
lea rsi, [0x14001922c]
mov r15, rsi
lea rdx, str.Assigning_Drive_Letter_:
lea rdi, [0x140021580]
mov rcx, rdi
call fcn.14000c124
mov rcx, rax
mov rdx, rbx
call fcn.14000c378
mov r12, rax
mov r14b, 0xa
mov al, r14b
mov rcx, qword [r12]
movsxd rcx, dword [rcx + 4]
add rcx, r12
mov dl, al
call fcn.140008e14
inc r15
movzx edx, ax
mov rcx, r12
call fcn.140008284
mov al, byte [r15]
test al, al
jne 0x140003ea1
jmp 0x140003f25
lea rsi, [0x14001922c]
mov r15, rsi
lea rdx, str.Assigning_Mount_Point_:
lea rdi, [0x140021580]
mov rcx, rdi
call fcn.14000c124
mov rcx, rax
mov rdx, rbx
call fcn.14000c378
mov r12, rax
mov r14b, 0xa
mov al, r14b
mov rcx, qword [r12]
movsxd rcx, dword [rcx + 4]
add rcx, r12
mov dl, al
call fcn.140008e14
inc r15
movzx edx, ax
mov rcx, r12
call fcn.140008284
mov al, byte [r15]
test al, al
jne 0x140003efe
lea r8, [rbp - 0x69]
mov rdx, qword [rsp + 0x28]
mov rcx, r13
call fcn.14000f4dc
mov r15d, eax
mov dword [rsp + 0x28], eax
xor r12d, r12d
test eax, eax
js 0x140004299
mov rcx, qword [rbp - 0x61]
mov rdx, qword [rbp - 0x69]
sub rcx, rdx
sar rcx, 5
test rcx, rcx
je 0x140004285
mov qword [rbp - 0x19], r12
mov qword [rbp - 0x11], r12
mov qword [rbp - 0x11], 7
mov qword [rbp - 0x19], r12
mov word [rbp - 0x29], r12w
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rbp - 0x29]
call fcn.14000a238
nop
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x38], xmm0
mov qword [rbp - 0x71], r12
mov edx, 0x104
lea rcx, [rsp + 0x38]
call fcn.1400070ac
nop
mov dword [rsp + 0x20], r12d
mov r8, qword [rbp - 0x79]
mov r13, qword [rsp + 0x38]
sub r8, r13
sar r8, 1
lea rcx, [rbp - 0x29]
cmp qword [rbp - 0x11], 8
cmovae rcx, qword [rbp - 0x29]
lea r9, [rsp + 0x20]
mov rdx, r13
call qword [sym.imp.KERNEL32.dll_GetVolumePathNamesForVolumeNameW]
nop dword [rax + rax]
test eax, eax
je 0x140004097
cmp word [r13], r12w
je 0x140004097
mov r15, r13
lea r12, str.Deleting
mov dl, 0x44
mov rax, qword [0x140021580]
movsxd rcx, dword [rax + 4]
add rcx, rdi
call fcn.140008e14
inc r12
movzx edx, ax
mov rcx, rdi
call fcn.140008284
mov dl, byte [r12]
test dl, dl
jne 0x140003ffc
mov r12, rsi
mov rdx, r15
mov rcx, rdi
call fcn.14000c124
mov r13, rax
mov al, r14b
mov rcx, qword [r13]
movsxd rcx, dword [rcx + 4]
add rcx, r13
mov dl, al
call fcn.140008e14
inc r12
movzx edx, ax
mov rcx, r13
call fcn.140008284
mov al, byte [r12]
test al, al
jne 0x140004039
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_DeleteVolumeMountPointW]
nop dword [rax + rax]
or rax, 0xffffffffffffffff
xor ecx, ecx
inc rax
cmp word [r15 + rax*2], cx
jne 0x140004076
lea r15, [r15 + rax*2]
add r15, 2
cmp word [r15], cx
jne 0x140003ff3
mov rbx, qword [rsp + 0x30]
lea r12, [0x14001934c]
mov rdx, rbx
mov rcx, rdi
call fcn.14000c378
mov r15, rax
mov al, 0x20
mov rcx, qword [r15]
movsxd rcx, dword [rcx + 4]
add rcx, r15
mov dl, al
call fcn.140008e14
inc r12
movzx edx, ax
mov rcx, r15
call fcn.140008284
mov al, byte [r12]
test al, al
jne 0x1400040ae
mov r12, rsi
lea rdx, [rbp - 0x29]
mov rcx, r15
call fcn.14000c378
mov r15, rax
mov al, r14b
mov rbx, qword [rsp + 0x30]
mov rcx, qword [r15]
movsxd rcx, dword [rcx + 4]
add rcx, r15
mov dl, al
call fcn.140008e14
inc r12
movzx edx, ax
mov rcx, r15
call fcn.140008284
mov al, byte [r12]
test al, al
jne 0x1400040ef
lea rdx, [rbp - 0x29]
cmp qword [rbp - 0x11], 8
cmovae rdx, qword [rbp - 0x29]
cmp qword [rbx + 0x18], 8
jb 0x14000412e
mov rbx, qword [rbx]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetVolumeMountPointW]
nop dword [rax + rax]
xor r12d, r12d
test eax, eax
mov r13, qword [rsp + 0x38]
jne 0x140004232
lea rcx, [rbp - 0x51]
call qword [sym.imp.msvcrt.dll_public:_void___cdecl_exception::constructor_void____ptr64]
nop dword [rax + rax]
nop
lea rax, [0x140016cb8]
mov qword [rbp - 0x51], rax
lea rax, [0x140016ad0]
mov qword [rbp - 0x51], rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov dword [rbp - 0x39], eax
lea rdx, [rbp - 9]
lea rcx, [rbp - 0x51]
call fcn.140002888
mov r15, rax
lea rbx, str.Assignment_failed_:
mov dl, 0x41
mov rcx, qword [0x140021580]
movsxd rcx, dword [rcx + 4]
add rcx, rdi
call fcn.140008e14
inc rbx
movzx edx, ax
mov rcx, rdi
call fcn.140008284
mov dl, byte [rbx]
test dl, dl
jne 0x14000419c
mov rdx, r15
mov rcx, rdi
call fcn.14000c378
mov rbx, rax
mov rcx, qword [rbx]
movsxd rcx, dword [rcx + 4]
add rcx, rbx
mov dl, r14b
call fcn.140008e14
inc rsi
movzx edx, ax
mov rcx, rbx
call fcn.140008284
mov r14b, byte [rsi]
test r14b, r14b
jne 0x1400041d1
cmp qword [rbp + 0xf], 8
jb 0x140004210
mov rcx, qword [rbp - 9]
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_]
nop dword [rax + rax]
mov qword [rbp + 0xf], 7
mov qword [rbp + 7], r12
mov word [rbp - 9], r12w
lea rcx, [rbp - 0x51]
call qword [sym.imp.msvcrt.dll_public_virtual:_void___cdecl_exception::destructor_void____ptr64]
nop dword [rax + rax]
nop
test r13, r13
je 0x140004253
mov rcx, r13
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_]
nop dword [rax + rax]
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x38], xmm0
mov qword [rbp - 0x71], r12
cmp qword [rbp - 0x11], 8
jb 0x14000426a
mov rcx, qword [rbp - 0x29]
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_]
nop dword [rax + rax]
mov qword [rbp - 0x11], 7
mov qword [rbp - 0x19], r12
mov word [rbp - 0x29], r12w
mov r15d, dword [rsp + 0x28]
jmp 0x140004321
lea rdx, str.No_volumes_on_the_drive_n
mov rcx, rdi
call fcn.14000c124
jmp 0x140004321
lea rdx, str.Could_not_list_volumes_on_the_drive_:
mov rcx, rdi
call fcn.14000c124
mov r8, rax
test rax, rax
jne 0x1400042b5
mov rcx, r12
jmp 0x1400042bf
mov rax, qword [rax]
movsxd rcx, dword [rax + 4]
add rcx, r8
and dword [rcx + 0x18], 0xfffff9ff
bts dword [rcx + 0x18], 0xb
mov edx, r15d
mov rcx, r8
call fcn.140008904
mov rbx, rax
test rax, rax
jne 0x1400042e3
mov rcx, r12
jmp 0x1400042ed
mov rax, qword [rax]
movsxd rcx, dword [rax + 4]
add rcx, rbx
and dword [rcx + 0x18], 0xfffff3ff
bts dword [rcx + 0x18], 9
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
add rcx, rbx
mov dl, r14b
call fcn.140008e14
inc rsi
movzx edx, ax
mov rcx, rbx
call fcn.140008284
mov r14b, byte [rsi]
test r14b, r14b
jne 0x1400042f9
lea rcx, [rbp - 0x69]
call fcn.1400071c0
mov eax, r15d
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.140012f80
mov rbx, qword [rsp + 0x138]
add rsp, 0xe0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov edx, 0x7b
lea rcx, [rbp - 0x51]
call fcn.140002830
lea rdx, [0x14001f570]
lea rcx, [rbp - 0x51]
call sub.msvcrt.dll__CxxThrowException
int3