Function at 0x140028744
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r12
push r13
push r14
push r15
sub rsp, 0x2e0
mov rax, qword [0x1400390f8]
xor rax, rsp
mov qword [rsp + 0x2d0], rax
xor eax, eax
movzx r15d, ax
mov dword [rsp + 0x3c], r15d
mov word [rsp + 0x20], ax
cmp dword [0x140039834], eax
je 0x1400287a0
xor edx, edx
mov ecx, 0x2335
call fcn.140015a74
call fcn.14000aa60
cmp dword [0x140039118], 0
je 0x140028e4e
cmp dword [0x1400398e0], 0
jne 0x1400287c2
lea rcx, [0x140030688]
call fcn.14001242c
cmp byte [0x140043c26], 0
je 0x1400287d4
lea r14, [0x140054780]
jmp 0x140028806
lea rcx, [0x140030510]
call fcn.140012b78
mov r14, rax
test rax, rax
je 0x140028806
mov r8, rax
mov edx, 0x200
lea r14, [0x140054780]
mov rcx, r14
call fcn.140011620
mov byte [0x140043c26], 1
lea r15, [0x140050090]
mov rcx, r15
mov rax, qword [0x140050298]
test rax, rax
cmovne rcx, rax
xor r8d, r8d
mov edx, dword [0x1400502a8]
call fcn.14000bae4
lea rcx, [rsp + 0x58]
call fcn.1400286e0
mov rbx, rax
mov qword [rsp + 0x48], rax
test rax, rax
je 0x140028e4e
mov rdi, rax
mov qword [rsp + 0x28], rax
xor r10d, r10d
mov word [rax], r10w
mov rsi, qword [rsp + 0x58]
dec rsi
mov qword [rsp + 0x30], rsi
test r14, r14
je 0x140028de0
movzx eax, word [r14]
test ax, ax
je 0x140028de0
or r13, 0xffffffffffffffff
test ax, ax
je 0x140028e21
cmp ax, 0x24
je 0x1400288fe
movzx r9d, ax
lea r8, [0x140031d6c]
mov rdx, rsi
mov rcx, rdi
call fcn.140012610
mov rax, r13
inc rax
cmp word [rdi + rax*2], 0
jne 0x1400288a5
lea rdi, [rdi + rax*2]
mov qword [rsp + 0x28], rdi
sub rsi, rax
mov qword [rsp + 0x30], rsi
call fcn.1400025d0
test al, al
je 0x1400288ea
movzx r15d, word [r14]
mov dword [rsp + 0x3c], r15d
movzx ecx, r15w
call fcn.14002930c
test eax, eax
je 0x1400288ea
mov word [rsp + 0x20], r15w
jmp 0x140028dd0
xor r10d, r10d
mov edx, r10d
mov dword [rsp + 0x3c], edx
mov word [rsp + 0x20], dx
jmp 0x140028dd3
add r14, 2
mov qword [rsp + 0x60], r14
mov r15d, r10d
lea r13, [0x140031ff0]
mov r12d, r15d
lea rax, [r12 + r12*2]
movzx ebx, word [r13 + rax*2]
test bx, bx
je 0x14002893a
movzx ecx, word [r14]
call qword [sym.imp.msvcrt.dll_towupper]
cmp ax, bx
je 0x140028937
inc r15d
jmp 0x140028911
test bx, bx
mov r13, 0xffffffffffffffff
je 0x140028e1e
lea rax, [r12 + r12*2]
lea rcx, [rax + rax]
lea rdx, [0x140031ff0]
movzx eax, word [rcx + rdx + 2]
cmp ax, 8
jne 0x140028992
movzx r9d, word [rcx + rdx + 4]
lea r8, [0x140031d6c]
mov rdx, rsi
mov rcx, rdi
call fcn.140012610
mov rax, r13
inc rax
cmp word [rdi + rax*2], 0
jne 0x14002897c
lea rdi, [rdi + rax*2]
sub rsi, rax
jmp 0x140028dc6
movzx ecx, ax
sub ecx, 1
je 0x140028daa
sub ecx, 1
je 0x140028d96
sub ecx, 1
je 0x140028d59
sub ecx, 1
je 0x140028d03
sub ecx, 1
je 0x140028c26
sub ecx, 1
je 0x140028b9e
sub ecx, 3
je 0x140028b58
cmp ecx, 1
je 0x140028a1d
lea rcx, [0x140050090]
mov rax, qword [0x140050298]
test rax, rax
cmovne rcx, rax
movzx r9d, word [rcx]
lea r8, [0x140031d6c]
mov rdx, rsi
mov rcx, rdi
call fcn.140012610
mov rax, r13
inc rax
cmp word [rdi + rax*2], 0
jne 0x140028a07
lea rdi, [rdi + rax*2]
sub rsi, rax
jmp 0x140028dc6
xor r10d, r10d
cmp byte [0x1400502b9], r10b
je 0x140028dd3
mov dword [rsp + 0x38], r10d
lea r8, [0x140050090]
mov rax, r8
mov rcx, qword [0x140050298]
test rcx, rcx
cmovne rax, rcx
movzx eax, word [rax]
mov word [rsp + 0x70], ax
mov rax, r8
cmovne rax, rcx
movzx eax, word [rax + 2]
mov word [rsp + 0x72], ax
mov dword [rsp + 0x74], 0x5c
lea rcx, [rsp + 0x70]
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetDriveTypeW]
cmp eax, 4
jne 0x140028dd0
xor eax, eax
mov word [rsp + 0x74], ax
mov dword [rsp + 0x40], 0x104
call fcn.140017b2c
test al, al
je 0x140028ab4
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0xc0]
lea rcx, [rsp + 0x70]
call qword [sym.imp.ext_ms_win_cmd_util_l1_1_0.dll_WNetGetConnectionWStub]
mov dword [rsp + 0x38], eax
jmp 0x140028abc
mov dword [rsp + 0x38], 0x78
xor r10d, r10d
jmp 0x140028ae7
mov eax, dword [rsp + 0x38]
test eax, eax
je 0x140028b25
cmp eax, 0x8ca
je 0x140028dd3
lea r8, str.Unknown
mov rdx, rsi
mov rcx, rdi
call fcn.140012610
mov rax, r13
inc rax
cmp word [rdi + rax*2], 0
jne 0x140028b0f
lea rdi, [rdi + rax*2]
sub rsi, rax
jmp 0x140028dc6
lea r9, [rsp + 0xc0]
lea r8, [0x140031f70]
mov rdx, rsi
mov rcx, rdi
call fcn.140012610
mov rax, r13
inc rax
cmp word [rdi + rax*2], 0
jne 0x140028b42
lea rdi, [rdi + rax*2]
sub rsi, rax
jmp 0x140028dc6
cmp byte [0x1400502b9], 0
je 0x140028dd0
mov ecx, dword [0x1400502e4]
mov r8d, 0x2b
cmp rsi, 1
jbe 0x140028dd0
mov eax, ecx
dec ecx
test eax, eax
je 0x140028dd0
mov word [rdi], r8w
add rdi, 2
mov qword [rsp + 0x28], rdi
dec rsi
mov qword [rsp + 0x30], rsi
jmp 0x140028b71
lea rax, [rsi - 1]
cmp rax, 0x7ffffffe
ja 0x140028bf7
mov rdx, rsi
mov rcx, rdi
mov r8d, 0x7ffffffe
sub r8, rsi
lea r9, [0x140030688]
sub r9, rdi
lea rax, [r8 + rdx]
test rax, rax
je 0x140028be3
movzx eax, word [rcx + r9]
test ax, ax
je 0x140028be3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x140028bc3
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
xor r10d, r10d
mov word [rax], r10w
jmp 0x140028c03
xor r10d, r10d
test rsi, rsi
je 0x140028c03
mov word [rdi], r10w
mov rax, r13
inc rax
cmp word [rdi + rax*2], 0
jne 0x140028c06
lea rdi, [rdi + rax*2]
mov qword [rsp + 0x28], rdi
sub rsi, rax
mov qword [rsp + 0x30], rsi
jmp 0x140028dd3
lea rax, [rsi - 1]
cmp word [rsp + 0x3c], 0
je 0x140028c7f
cmp rax, 0x7ffffffe
ja 0x140028c75
mov rdx, rsi
mov rcx, rdi
mov r8d, 0x7ffffffe
sub r8, rsi
lea r9, str._b_b___b_b
sub r9, rdi
lea rax, [r8 + rdx]
test rax, rax
je 0x140028cc0
movzx eax, word [rcx + r9]
test ax, ax
je 0x140028cc0
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x140028c53
jmp 0x140028cc0
xor r10d, r10d
test rsi, rsi
je 0x140028ce0
jmp 0x140028cdc
cmp rax, 0x7ffffffe
ja 0x140028cd4
mov rdx, rsi
mov rcx, rdi
mov r8d, 0x7ffffffe
sub r8, rsi
lea r9, [0x140031da8]
sub r9, rdi
lea rax, [r8 + rdx]
test rax, rax
je 0x140028cc0
movzx eax, word [rcx + r9]
test ax, ax
je 0x140028cc0
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x140028ca0
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
xor r10d, r10d
mov word [rax], r10w
jmp 0x140028ce0
xor r10d, r10d
test rsi, rsi
je 0x140028ce0
mov word [rdi], r10w
mov rax, r13
inc rax
cmp word [rdi + rax*2], 0
jne 0x140028ce3
lea rdi, [rdi + rax*2]
mov qword [rsp + 0x28], rdi
sub rsi, rax
mov qword [rsp + 0x30], rsi
jmp 0x140028dd3
lea rcx, [rsp + 0x80]
call fcn.140006468
lea rdx, [rsp + 0x80]
mov ecx, 0x2350
call fcn.140009458
mov rbx, rax
mov r9, rax
lea r8, [0x140030690]
mov rdx, rsi
mov rcx, rdi
call fcn.140012610
mov rcx, rbx
call qword [sym.imp.api_ms_win_core_heap_l2_1_0.dll_LocalFree]
mov rax, r13
inc rax
cmp word [rdi + rax*2], 0
jne 0x140028d46
lea rdi, [rdi + rax*2]
sub rsi, rax
jmp 0x140028dc6
lea r9, [0x140050090]
mov rax, qword [0x140050298]
test rax, rax
cmovne r9, rax
lea r8, [0x140030690]
mov rdx, rsi
mov rcx, rdi
call fcn.140012610
mov rax, r13
inc rax
cmp word [rdi + rax*2], 0
jne 0x140028d83
lea rdi, [rdi + rax*2]
sub rsi, rax
jmp 0x140028dc6
mov r9d, esi
mov r8, rdi
mov edx, 1
xor ecx, ecx
call fcn.140002178
jmp 0x140028dbc
mov r9d, esi
mov r8, rdi
mov edx, 1
xor ecx, ecx
call fcn.1400071a0
movsxd rcx, eax
sub rsi, rcx
lea rdi, [rdi + rcx*2]
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rdi
xor r10d, r10d
add r14, 2
movzx eax, word [r14]
jmp 0x14002887d
mov rax, qword [0x140050298]
test rax, rax
cmovne r15, rax
mov r9, r15
lea r8, [0x140031d50]
mov rdx, rsi
mov rcx, rbx
call fcn.140012610
or r13, 0xffffffffffffffff
mov rax, r13
lea rax, [rax + 1]
cmp word [rbx + rax*2], 0
jne 0x140028e0a
lea rdi, [rbx + rax*2]
xor r10d, r10d
jmp 0x140028e26
xor r10d, r10d
mov rbx, qword [rsp + 0x48]
mov word [rdi], r10w
inc r13
cmp word [rbx + r13*2], 0
jne 0x140028e2a
mov rdx, r13
mov rcx, rbx
call fcn.14001247c
cmp dword [0x140039834], 0
je 0x140028e4e
call fcn.14000aa60
mov rcx, qword [rsp + 0x2d0]
xor rcx, rsp
call fcn.1400173b0
lea r11, [rsp + 0x2e0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
ret