Function at 0x1800078c0
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rsp + 0x80], rbx
mov rsi, rcx
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsA]
mov ebx, eax
inc eax
mov edi, eax
mov ecx, eax
call fcn.18002f604
mov r15, rax
mov r8d, edi
xor edx, edx
mov rcx, rax
call fcn.1800334b0
mov rdx, r15
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsA]
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, r15
repne scasb al, byte [rdi]
not rcx
dec rcx
mov qword [rsp + 0x98], rcx
test ecx, ecx
je 0x180007c8b
lea rcx, [0x18005d078]
mov rax, qword [0x18005d078]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x90], rdi
test r15, r15
je 0x18000799e
test r15, 0xffffffffffff0000
jne 0x18000798b
movzx ebx, r15w
mov ecx, ebx
call fcn.180001110
test rax, rax
je 0x1800079bb
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0x90]
call fcn.180001a00
jmp 0x1800079b3
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, r15
repne scasb al, byte [rdi]
not rcx
dec rcx
jmp 0x1800079a0
xor ecx, ecx
mov r8d, ecx
mov rdx, r15
lea rcx, [rsp + 0x90]
call fcn.180001b40
mov rdi, qword [rsp + 0x90]
lea rcx, [rsp + 0x20]
call fcn.18000f880
nop
mov r12, qword [rax]
movsxd rcx, dword [r12 - 0x10]
mov r14, r12
sub r14, rdi
mov r13d, dword [rdi - 0x10]
xor eax, eax
test ecx, ecx
setns al
test eax, eax
je 0x180007c80
test r12, r12
jne 0x1800079f0
xor ebp, ebp
jmp 0x1800079fe
mov rdx, rcx
mov rcx, r12
call fcn.180030828
mov rbp, rax
mov ecx, 0x7fffffff
sub ecx, ebp
xor edx, edx
cmp ecx, r13d
setge dl
test edx, edx
je 0x180007c75
lea ebx, [r13 + rbp]
test ebx, ebx
js 0x180007c6a
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, ebx
or eax, ecx
jge 0x180007a4a
mov edx, ebx
lea rcx, [rsp + 0x90]
call fcn.180001ef0
mov rdi, qword [rsp + 0x90]
cmp r14, r13
ja 0x180007a53
lea r12, [r14 + rdi]
movsxd rdx, ebp
lea rcx, [r13 + rdi]
mov r9, rdx
mov r8, r12
call fcn.18002feb4
cmp ebx, dword [rdi - 0xc]
jg 0x180007c5f
mov dword [rdi - 0x10], ebx
movsxd rax, ebx
mov byte [rax + rdi], 0
mov rdx, qword [rsp + 0x20]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180007a99
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov rax, qword [rsi + 8]
lea rcx, [rsp + 0x90]
cmp rcx, rax
jae 0x180007b61
mov rcx, qword [rsi]
lea rdx, [rsp + 0x90]
cmp rcx, rdx
ja 0x180007b61
lea rbx, [rsp + 0x90]
sub rbx, rcx
sar rbx, 3
cmp rax, qword [rsi + 0x10]
jne 0x180007adf
mov rcx, rsi
call fcn.180009040
mov rax, qword [rsi]
mov rbp, qword [rsi + 8]
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x38], rbp
test rbp, rbp
je 0x180007b5c
mov rbx, qword [rax + rbx*8]
mov rcx, qword [rbx - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rbx - 8], 0
jl 0x180007b1c
cmp rax, qword [rbx - 0x18]
jne 0x180007b1c
lea r12, [rbx - 0x18]
lock inc dword [rbx - 8]
jmp 0x180007b53
mov rax, qword [rax]
mov r8d, 1
mov edx, dword [rbx - 0x10]
call qword [rax]
mov r12, rax
test rax, rax
je 0x180007c53
mov ecx, dword [rbx - 0x10]
mov dword [rax + 8], ecx
mov ecx, dword [rbx - 0x10]
inc ecx
movsxd rdx, ecx
mov r8, rbx
lea rcx, [rax + 0x18]
mov r9, rdx
call fcn.18002feb4
lea rax, [r12 + 0x18]
mov qword [rbp], rax
jmp 0x180007bed
cmp rax, qword [rsi + 0x10]
jne 0x180007b6f
mov rcx, rsi
call fcn.180009040
mov rbp, qword [rsi + 8]
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x30], rbp
test rbp, rbp
je 0x180007bed
mov rbx, qword [rsp + 0x90]
mov rcx, qword [rbx - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rbx - 8], 0
jl 0x180007bad
cmp rax, qword [rbx - 0x18]
jne 0x180007bad
lea r12, [rbx - 0x18]
lock inc dword [rbx - 8]
jmp 0x180007be4
mov rax, qword [rax]
mov r8d, 1
mov edx, dword [rbx - 0x10]
call qword [rax]
mov r12, rax
test rax, rax
je 0x180007c59
mov ecx, dword [rbx - 0x10]
mov dword [rax + 8], ecx
mov ecx, dword [rbx - 0x10]
inc ecx
movsxd rdx, ecx
mov r8, rbx
lea rcx, [rax + 0x18]
mov r9, rdx
call fcn.18002feb4
lea rax, [r12 + 0x18]
mov qword [rbp], rax
add qword [rsi + 8], 8
mov eax, dword [rdi - 0x10]
add eax, 0x40
mov rbp, qword [rsp + 0x88]
add dword [rbp], eax
mov rcx, qword [rsp + 0x98]
inc ecx
add r15, rcx
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, r15
repne scasb al, byte [rdi]
not rcx
lea ebx, [rcx - 1]
mov qword [rsp + 0x98], rbx
mov rdx, qword [rsp + 0x90]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180007c4c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
test ebx, ebx
jmp 0x180007935
call fcn.180001c20
nop
call fcn.180001c20
nop
mov ecx, 0x80070057
call fcn.180001050
int3
mov ecx, 0x80070057
call fcn.180001050
int3
mov ecx, 0x80070057
call fcn.180001050
int3
mov ecx, 0x80070057
call fcn.180001050
nop
mov rbx, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret