Function at 0x140029590
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x148
mov qword [rsp + 0xd8], 0xfffffffffffffffe
mov rbp, rcx
call qword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov r9d, eax
mov dword [rsp + 0x1a8], eax
xor ecx, ecx
mov esi, ecx
mov dword [rsp + 0x198], ecx
mov r8d, ecx
mov dword [rsp + 0x1a0], ecx
mov r12, rcx
mov qword [rsp + 0x30], rcx
add rbp, 0x98
mov r14, rcx
movabs r10, 0x2aaaaaaaaaaaaaab
movzx ebx, byte [rsp + 0x190]
movzx edi, byte [rsp + 0x190]
jmp 0x14002961c
xor ecx, ecx
movabs r10, 0x2aaaaaaaaaaaaaab
mov qword [rsp + 0x48], rcx
mov dword [rsp + 0x50], ecx
mov qword [rsp + 0x58], rcx
mov dword [rsp + 0x60], ecx
mov byte [rsp + 0x64], 1
mov qword [rsp + 0x68], rcx
lea r15d, [r8 + 0x41]
mov byte [rsp + 0x40], r15b
mov rax, qword [rbp + 8]
test rax, rax
jne 0x14002964f
mov rdx, rcx
jmp 0x14002966a
mov rcx, qword [rbp + 0x10]
sub rcx, rax
mov rax, r10
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp esi, edx
jge 0x1400296bb
mov rax, qword [rbp + 8]
test rax, rax
je 0x140029697
mov rcx, qword [rbp + 0x10]
sub rcx, rax
mov rax, r10
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp r12, rdx
jb 0x1400296ac
call fcn.14011ef50
mov r8d, dword [rsp + 0x1a0]
mov r9d, dword [rsp + 0x1a8]
mov rax, qword [rbp + 8]
cmp byte [r14 + rax], r15b
jne 0x1400296bb
mov r12b, 1
jmp 0x1400296be
xor r12b, r12b
bt r9d, r8d
jae 0x140029708
mov rax, qword [0x14023b258]
mov rsi, qword [rax]
cmp rsi, rax
jne 0x1400296d8
call fcn.14011ef50
movsx edx, r15b
mov rcx, qword [rsi + 0x20]
call fcn.14011fff0
test rax, rax
jne 0x140029708
lea rcx, [rsp + 0x40]
call fcn.140027bb0
test al, al
je 0x140029703
mov r13b, 1
movzx r15d, byte [rsp + 0x40]
jmp 0x14002970b
mov r15b, byte [rsp + 0x40]
xor r13b, r13b
test r12b, r12b
je 0x14002994e
mov rax, qword [rbp + 8]
test rax, rax
je 0x14002974b
mov rcx, qword [rbp + 0x10]
sub rcx, rax
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov r12, qword [rsp + 0x30]
cmp r12, rdx
jb 0x140029755
jmp 0x140029750
mov r12, qword [rsp + 0x30]
call fcn.14011ef50
mov rsi, qword [rbp + 8]
test r13b, r13b
je 0x140029794
mov rax, qword [r14 + rsi + 8]
mov r8, qword [rsp + 0x48]
sub r8, rax
nop
nop
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x140029784
add rax, 1
test ecx, ecx
jne 0x140029770
test edx, edx
jne 0x140029794
mov rax, qword [rsp + 0x58]
cmp qword [r14 + rsi + 0x18], rax
je 0x1400297dc
cmp qword [r14 + rsi + 0x28], 0
je 0x1400297dc
mov r8, qword [r14 + rsi + 8]
lea rdx, str.Withdraw__s
lea rcx, [0x14023b200]
call fcn.140002f80
mov rcx, qword [r14 + rsi + 0x28]
call fcn.140046860
mov rcx, qword [r14 + rsi + 0x28]
test rcx, rcx
je 0x1400297d3
mov rax, qword [rcx]
mov edx, 1
call qword [rax + 0x28]
mov qword [r14 + rsi + 0x28], 0
test r13b, r13b
je 0x1400298c6
cmp qword [r14 + rsi + 0x28], 0
jne 0x140029a74
mov rax, qword [rbp + 8]
test rax, rax
je 0x140029821
mov rcx, qword [rbp + 0x10]
sub rcx, rax
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp r12, rdx
jb 0x140029826
call fcn.14011ef50
mov r12, qword [rbp + 8]
mov byte [r14 + r12], r15b
mov rax, qword [r14 + r12 + 8]
test rax, rax
je 0x140029863
mov r8, qword [rsp + 0x48]
test r8, r8
je 0x140029874
mov rdx, r8
sub rdx, rax
movzx ecx, byte [rax]
cmp cl, byte [rax + rdx]
jne 0x14002985c
add rax, 1
test cl, cl
jne 0x140029848
xor eax, eax
jmp 0x140029870
sbb eax, eax
sbb eax, 0xffffffff
jmp 0x140029870
mov r8, qword [rsp + 0x48]
mov rax, r8
neg rax
sbb eax, eax
test eax, eax
je 0x140029891
or edx, 0xffffffff
mov rcx, r8
call fcn.14007b6e0
mov rsi, rax
mov rcx, qword [r14 + r12 + 8]
call fcn.14011e950
mov qword [r14 + r12 + 8], rsi
mov eax, dword [rsp + 0x50]
mov dword [r14 + r12 + 0x10], eax
mov rax, qword [rsp + 0x58]
mov qword [r14 + r12 + 0x18], rax
mov eax, dword [rsp + 0x60]
mov dword [r14 + r12 + 0x20], eax
movzx eax, byte [rsp + 0x64]
mov byte [r14 + r12 + 0x24], al
mov rax, qword [rsp + 0x68]
mov qword [r14 + r12 + 0x28], rax
jmp 0x140029a74
mov rsi, qword [rbp + 8]
cmp rsi, qword [rbp + 0x10]
jbe 0x1400298d5
call fcn.14011ef50
movsxd rax, dword [rsp + 0x198]
lea rcx, [rax + rax*2]
shl rcx, 4
add rsi, rcx
cmp rsi, qword [rbp + 0x10]
ja 0x1400298f4
cmp rsi, qword [rbp + 8]
jae 0x1400298f9
call fcn.14011ef50
lea rcx, [rsi + 0x30]
xor eax, eax
mov byte [rsp + 0x28], al
mov byte [rsp + 0x20], dil
movzx r9d, bl
mov r8, rsi
mov rdx, qword [rbp + 0x10]
call fcn.1400282a0
mov r12, qword [rbp + 0x10]
lea rsi, [r12 - 0x30]
cmp rsi, r12
je 0x140029938
mov rcx, qword [rsi + 8]
call fcn.14011e950
add rsi, 0x30
cmp rsi, r12
jne 0x140029926
add qword [rbp + 0x10], 0xffffffffffffffd0
mov esi, dword [rsp + 0x198]
mov r12, qword [rsp + 0x30]
jmp 0x140029aa5
test r13b, r13b
je 0x140029a99
mov rsi, qword [rbp + 8]
cmp rsi, qword [rbp + 0x10]
jbe 0x140029966
call fcn.14011ef50
mov qword [rsp + 0xb0], rbp
mov qword [rsp + 0xb8], rsi
movsxd rax, dword [rsp + 0x198]
movaps xmm0, xmmword [rsp + 0xb0]
movdqa xmmword [rsp + 0xa0], xmm0
lea rax, [rax + rax*2]
shl rax, 4
add rsi, rax
cmp rsi, qword [rbp + 0x10]
ja 0x1400299a6
cmp rsi, qword [rbp + 8]
jae 0x1400299ab
call fcn.14011ef50
mov qword [rsp + 0xa8], rsi
mov r12, qword [rbp + 8]
test r12, r12
je 0x140029a1b
mov r8, qword [rbp + 0x10]
mov rcx, r8
sub rcx, r12
movabs r13, 0x2aaaaaaaaaaaaaab
mov rax, r13
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x140029a1b
cmp r12, r8
jbe 0x1400299f0
call fcn.14011ef50
cmp qword [rsp + 0xa0], rbp
je 0x1400299ff
call fcn.14011ef50
sub rsi, r12
mov rax, r13
imul rsi
mov rsi, rdx
sar rsi, 3
mov rax, rsi
shr rax, 0x3f
add rsi, rax
jmp 0x140029a1d
xor esi, esi
movaps xmm0, xmmword [rsp + 0xa0]
movdqa xmmword [rsp + 0xc0], xmm0
lea r9, [rsp + 0x40]
mov r8d, 1
lea rdx, [rsp + 0xc0]
mov rcx, rbp
call fcn.1400288f0
mov r12, qword [rbp + 8]
cmp r12, qword [rbp + 0x10]
jbe 0x140029a58
call fcn.14011ef50
lea rdx, [rsi + rsi*2]
shl rdx, 4
add rdx, r12
cmp rdx, qword [rbp + 0x10]
ja 0x140029a6f
cmp rdx, qword [rbp + 8]
jae 0x140029a74
call fcn.14011ef50
mov esi, dword [rsp + 0x198]
add esi, 1
mov dword [rsp + 0x198], esi
mov r12, qword [rsp + 0x30]
add r12, 1
mov qword [rsp + 0x30], r12
add r14, 0x30
jmp 0x140029aa5
mov esi, dword [rsp + 0x198]
mov r12, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x48]
call fcn.14011e950
mov r8d, dword [rsp + 0x1a0]
add r8d, 1
mov dword [rsp + 0x1a0], r8d
cmp r8d, 0x1a
mov r9d, dword [rsp + 0x1a8]
jl 0x140029610
mov rdi, qword [rsp + 0x190]
mov dword [rdi + 0x90], esi
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1009
mov rcx, qword [rdi + 0x88]
call qword [sym.imp.USER32.dll_SendMessageW]
xor esi, esi
xor r12d, r12d
xor r13d, r13d
lea r14, [0x140195ca4]
nop
nop
mov rax, qword [rbp + 8]
test rax, rax
jne 0x140029b27
xor edx, edx
movabs r8, 0x2aaaaaaaaaaaaaab
jmp 0x140029b4c
mov rcx, qword [rbp + 0x10]
sub rcx, rax
movabs r8, 0x2aaaaaaaaaaaaaab
mov rax, r8
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp esi, edx
jge 0x140029c28
mov rax, qword [rbp + 8]
test rax, rax
je 0x140029b7d
mov rcx, qword [rbp + 0x10]
sub rcx, rax
mov rax, r8
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp r12, rdx
jb 0x140029b82
call fcn.14011ef50
mov rax, qword [rbp + 8]
lea rbx, [r13 + rax]
mov rdi, qword [rdi + 0x88]
xor edx, edx
lea r8d, [rdx + 0x58]
lea rcx, [rsp + 0x40]
call fcn.14011f1f0
mov dword [rsp + 0x40], 1
mov qword [rsp + 0x58], r14
mov dword [rsp + 0x44], esi
lea r9, [rsp + 0x40]
xor r8d, r8d
mov edx, 0x104d
mov rcx, rdi
call qword [sym.imp.USER32.dll_SendMessageW]
mov dword [rsp + 0xf0], 0xf000
xor eax, eax
cmp qword [rbx + 0x28], rax
setne al
add eax, 1
shl eax, 0xc
mov dword [rsp + 0xec], eax
movsxd r8, esi
lea r9, [rsp + 0xe0]
mov edx, 0x102b
mov rcx, rdi
call qword [sym.imp.USER32.dll_SendMessageW]
mov r8, rbx
mov edx, esi
mov rcx, rdi
call fcn.140027700
add esi, 1
add r12, 1
add r13, 0x30
mov rdi, qword [rsp + 0x190]
jmp 0x140029b10
add rsp, 0x148
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret