Function at 0x180097ca0
Capabilities:
Get disk information

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xd0
mov qword [rbp - 0x59], 0xfffffffffffffffe
mov qword [rsp + 0x128], rbx
mov rax, qword [0x1803c56a8]
xor rax, rsp
mov qword [rbp + 0x1f], rax
mov r14, r8
mov r13, rdx
mov r15, rcx
mov dword [rbp - 0x69], 0
mov rcx, rdx
call fcn.180097b70
mov r12, rax
cmp rax, 0xffffffffffffffff
je 0x180097d6e
mov rdx, rax
mov rcx, r15
call fcn.180097ac0
mov esi, eax
test eax, eax
js 0x180097d65
movabs rax, 0x5c003a0058
mov qword [rbp + 0x17], rax
mov edi, 0x41
nop dword [rax + rax]
mov word [rbp + 0x17], di
lea rcx, [rbp + 0x17]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 5
jne 0x180097d5c
movzx ecx, di
call fcn.180097be0
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x180097d5c
mov rdx, rax
mov rcx, r15
call fcn.180097ac0
mov rcx, rbx
cmp eax, esi
je 0x180097d97
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc di
cmp di, 0x5a
jbe 0x180097d20
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor al, al
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.180277e00
mov rbx, qword [rsp + 0x128]
add rsp, 0xd0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, reloc.WS2_32.dll_getservbyport
call fcn.1800eb720
mov rbx, rax
mov qword [rbp + 0x17], rax
xor edx, edx
lea r8d, [rdx + 0x60]
lea rcx, [rbp - 0x49]
call fcn.18027b320
xor edx, edx
lea r8d, [rdx + 0x60]
lea rcx, [r14 + 0x40]
call fcn.18027b320
mov eax, reloc.WS2_32.dll_getservbyport
mov word [rbp - 0x49], ax
mov word [rbp - 0x43], 0x2006
mov byte [rbp - 0x41], 1
mov dword [rbp - 0x3d], eax
mov dword [rbp - 0x39], 0x1388
mov qword [rbp - 0x31], rbx
mov dword [rbp - 0x29], 0x3c
mov byte [rbp - 0x25], send
mov byte [rbp - 0x21], al
mov qword [rsp + 0x38], 0
lea rax, [rbp - 0x69]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x60
lea rax, [rbp - 0x49]
mov qword [rsp + 0x20], rax
mov r9d, 0x60
lea r8, [rbp - 0x49]
mov edx, 0x4d014
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x180097e4b
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor dil, dil
jmp 0x180097f50
movups xmm0, xmmword [rbx]
movups xmmword [r14 + 0x40], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [r14 + 0x50], xmm1
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [r14 + 0x60], xmm0
movsd xmm1, qword [rbx + 0x30]
movsd qword [r14 + 0x70], xmm1
xor eax, eax
mov qword [r14 + 0x20], rax
mov byte [r14 + 0x28], al
mov qword [r14 + 0x29], rax
mov qword [r14 + 0x31], rax
mov byte [r14 + 0x39], al
mov dword [r14 + 0x3a], eax
mov byte [r14 + 0x3e], al
mov rax, qword [rbx + 8]
mov qword [r14 + 0x20], rax
movups xmm0, xmmword [rbx + 0x10]
movups xmmword [r14 + 0x29], xmm0
mov eax, dword [rbx + 0x20]
mov dword [r14 + 0x3a], eax
lea rcx, [r14 + 0xa0]
mov rdx, r13
call fcn.18001c7f0
movzx edx, di
lea rcx, [r14 + 8]
call fcn.18001c810
lea rdx, [0x1802d31c8]
lea rcx, [r14 + 8]
call fcn.18001d2b0
xor eax, eax
mov qword [rbp - 0x61], rax
mov dword [rbp - 0x61], 8
mov qword [rsp + 0x38], rax
lea rax, [rbp - 0x69]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 8
lea rax, [rbp - 0x61]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x41018
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x180097f2e
movzx eax, byte [rbp - 0x5d]
mov byte [r14], al
movzx eax, byte [rbp - 0x5b]
mov byte [r14 + 1], al
movzx eax, byte [rbp - 0x5a]
mov byte [r14 + 2], al
jmp 0x180097f44
mov byte [r14], 0
movzx eax, byte [r15 + 0x30]
mov byte [r14 + 1], al
inc byte [r15 + 0x30]
mov byte [r14 + 2], 0xfa
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov dil, 1
mov edx, reloc.WS2_32.dll_getservbyport
mov rcx, rbx
call fcn.18000db00
movzx eax, dil
jmp 0x180097d70