Function at 0x1801313d0
Capabilities:
Get disk information

Disassembly:
push rbx
push rdi
push r14
sub rsp, 0xb0
mov rax, qword [0x18018f008]
xor rax, rsp
mov qword [rsp + 0xa0], rax
mov r14, rcx
movabs rax, 0x5c003a0041
lea rcx, [0x180190350]
mov qword [rsp + 0x20], rax
call sym.tcl86t.dll_hcl_MutexLock
mov rdi, qword [0x18018fa20]
test rdi, rdi
je 0x180131504
nop dword [rax]
mov rax, qword [rdi]
mov r8, r14
sub r8, rax
nop dword [rax]
movzx edx, word [rax]
movzx ecx, word [rax + r8]
sub edx, ecx
jne 0x180131444
add rax, 2
test ecx, ecx
jne 0x180131430
test edx, edx
jne 0x1801314f7
movzx eax, word [rdi + 8]
lea r8d, [rdx + 0x37]
lea rdx, [rsp + 0x30]
mov word [rsp + 0x20], ax
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointW]
test eax, eax
je 0x18013149c
mov rax, qword [rdi]
lea r8, [rsp + 0x30]
sub r8, rax
nop dword [rax + rax]
movzx edx, word [rax]
movzx ecx, word [rax + r8]
sub edx, ecx
jne 0x180131494
add rax, 2
test ecx, ecx
jne 0x180131480
test edx, edx
je 0x180131679
mov rbx, qword [0x18018fa20]
cmp rbx, rdi
jne 0x1801314b5
mov rax, qword [rdi + 0x10]
mov qword [0x18018fa20], rax
jmp 0x1801314db
test rbx, rbx
je 0x1801314de
nop word [rax + rax]
lea rcx, [rbx + 0x10]
mov rbx, qword [rbx + 0x10]
cmp rbx, rdi
je 0x1801314d4
test rbx, rbx
jne 0x1801314c0
jmp 0x1801314de
mov rax, qword [rdi + 0x10]
mov qword [rcx], rax
mov rbx, rdi
mov rcx, qword [rbx]
call sym.tcl86t.dll_hclpFree
mov rcx, rbx
call sym.tcl86t.dll_hclpFree
mov rdi, qword [0x18018fa20]
jmp 0x1801314fb
mov rdi, qword [rdi + 0x10]
test rdi, rdi
jne 0x180131420
mov eax, 0x41
mov qword [rsp + 0xd8], rbp
mov word [rsp + 0x20], ax
mov qword [rsp + 0xe0], rsi
lea rbp, [rax - 0x42]
nop dword [rax]
nop word [rax + rax]
mov r8d, reloc.WS2_32.dll_getservbyname
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointW]
test eax, eax
je 0x18013160c
mov r9, qword [0x18018fa20]
test r9, r9
je 0x180131595
nop word [rax + rax]
mov rax, qword [r9]
lea r8, [rsp + 0x30]
sub r8, rax
nop dword [rax + rax]
movzx edx, word [rax]
movzx ecx, word [rax + r8]
sub edx, ecx
jne 0x180131584
add rax, 2
test ecx, ecx
jne 0x180131570
test edx, edx
je 0x18013160c
mov r9, qword [r9 + 0x10]
test r9, r9
jne 0x180131560
mov ecx, 0x18
call sym.tcl86t.dll_hclpAlloc
mov rbx, rax
test rax, rax
je 0x180131743
lea rax, [rsp + 0x30]
mov rcx, rbp
cmp word [rax + rcx*2 + 2], 0
lea rcx, [rcx + 1]
jne 0x1801315b3
lea rdi, [rcx*2 + 2]
mov ecx, edi
call sym.tcl86t.dll_hclpAlloc
mov rsi, rax
test rax, rax
jne 0x1801315de
test edi, edi
jne 0x180131755
mov r8, rdi
lea rdx, [rsp + 0x30]
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov qword [rbx], rsi
movsx eax, byte [rsp + 0x20]
mov word [rbx + 8], ax
mov rax, qword [0x18018fa20]
mov qword [rbx + 0x10], rax
mov qword [0x18018fa20], rbx
movzx eax, word [rsp + 0x20]
inc ax
mov word [rsp + 0x20], ax
cmp ax, 0x5a
jbe 0x180131530
mov rbx, qword [0x18018fa20]
test rbx, rbx
je 0x180131661
nop
mov rax, qword [rbx]
mov r8, r14
sub r8, rax
nop dword [rax]
movzx edx, word [rax]
movzx ecx, word [rax + r8]
sub edx, ecx
jne 0x180131654
add rax, 2
test ecx, ecx
jne 0x180131640
test edx, edx
je 0x18013168f
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x180131630
mov ecx, 0x18
call sym.tcl86t.dll_hclpAlloc
mov rbx, rax
test rax, rax
je 0x180131743
jmp 0x1801316a2
mov rcx, qword [0x180190350]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
movzx eax, byte [rdi + 8]
jmp 0x180131727
mov rcx, qword [0x180190350]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
movzx eax, byte [rbx + 8]
jmp 0x180131717
test r14, r14
jne 0x1801316b0
xor edi, edi
jmp 0x1801316ea
cmp word [r14 + rbp*2 + 2], 0
lea rbp, [rbp + 1]
jne 0x1801316b0
lea rsi, [rbp*2 + 2]
mov ecx, esi
call sym.tcl86t.dll_hclpAlloc
mov rdi, rax
test rax, rax
jne 0x1801316dc
test esi, esi
jne 0x180131764
mov r8, rsi
mov rdx, r14
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov eax, 0xffff
mov qword [rbx], rdi
mov word [rbx + 8], ax
mov rax, qword [0x18018fa20]
mov qword [rbx + 0x10], rax
mov rcx, qword [0x180190350]
mov qword [0x18018fa20], rbx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov al, 0xff
mov rsi, qword [rsp + 0xe0]
mov rbp, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.180146240
add rsp, 0xb0
pop r14
pop rdi
pop rbx
ret
mov edx, 0x18
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3
mov edx, edi
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3
mov edx, esi
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3