Function at 0x6106aab0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
lea edx, [ebp - 0x238]
push edi
push esi
push ebx
sub esp, 0x28c
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x240], eax
mov eax, esi
call sym._rootdir_8
test eax, eax
jne 0x6106ab76
test byte [0x6110a820], 1
jne 0x6106ab20
mov edx, dword [ebp - 0x240]
and byte [edx + 0x11], 0xf0
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 0xc], 0
mov dword [edx + 8], 0
mov byte [edx + 0x10], 0
xor edx, edx
lea esp, [ebp - 0xc]
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x10], esi
mov ecx, 0x40
mov esi, str.Cannot_get_root_component_of_path__s
mov dword [esp + 4], ecx
mov ebx, str.bool_fs_info::update_const_char_
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov dword [esp], 0x6110a820
call method.strace.prntf_unsigned_int__char_const__char_const__..._
mov ecx, dword [ebp - 0x240]
and byte [ecx + 0x11], 0xf0
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 8], 0
mov byte [ecx + 0x10], 0
jmp 0x6106ab0f
lea esi, [ebp - 0x238]
xor edx, edx
mov eax, 1
mov dword [esp], esi
call sym.__Z14hash_path_nameyPKc_12
mov ecx, dword [ebp - 0x240]
mov edi, edx
mov esi, eax
sub esp, 4
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
mov ecx, edx
xor ecx, edi
xor eax, esi
or ecx, eax
mov edx, 1
je 0x6106ab11
xor edx, edx
mov eax, dword [0x61144bcc]
mov dword [ebp - 0x244], edx
cmp dword [ebp - 0x244], eax
mov dword [ebp - 0x248], eax
jge 0x6106ac30
mov edx, dword [0x61144be4]
mov eax, dword [0x61144be0]
mov ecx, edx
or ecx, eax
je 0x6106ac30
xor eax, eax
mov ebx, 0x61144be0
mov dword [ebp - 0x264], eax
lea esi, [esi]
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
mov ecx, edx
xor ecx, edi
xor eax, esi
or ecx, eax
je 0x6106b1a7
inc dword [ebp - 0x244]
add ebx, 0x18
mov eax, dword [ebp - 0x248]
add dword [ebp - 0x264], 0x18
cmp dword [ebp - 0x244], eax
jge 0x6106ac30
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
mov ecx, edx
or ecx, eax
jne 0x6106abf0
lea esi, [esi]
mov eax, dword [ebp - 0x240]
mov dword [eax], esi
xor esi, esi
mov dword [eax + 4], edi
xor eax, eax
mov dword [ebp - 0x23c], eax
mov eax, dword [0x611630ec]
test byte [eax + 0x10], 0x20
je 0x6106ace0
mov eax, dword [0x61104ec4]
add eax, 0x88
mov eax, dword [eax + 0xd4]
test eax, eax
je 0x6106adf5
mov esi, eax
lea eax, [ebp - 0x23c]
mov dword [esp + 0x14], eax
mov eax, 2
mov dword [esp + 0x10], eax
mov eax, 2
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 8], eax
mov eax, 0x2000000
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.610fd218
sub esp, 0x18
test eax, eax
jne 0x6106b16b
test byte [0x6110a820], 1
je 0x6106ace0
mov eax, 0x61127b99
mov dword [esp + 0xc], eax
mov eax, str.bool_fs_info::update_const_char_
mov dword [esp + 8], eax
mov eax, 0x40
mov dword [esp + 4], eax
mov dword [esp], 0x6110a820
call method.strace.prntf_unsigned_int__char_const__char_const__..._
lea esi, [esi]
lea edx, [ebp - 0x238]
mov dword [esp], edx
call sub.KERNEL32.dll_GetDriveTypeA
mov ecx, dword [ebp - 0x240]
shl al, 5
sub esp, 4
movzx edx, byte [ecx + 0x10]
and dl, 0x1f
or dl, al
mov al, dl
shr al, 5
movzx eax, al
cmp eax, 4
je 0x6106ade4
test eax, eax
je 0x6106adca
mov eax, dword [ebp - 0x240]
and dl, 0xfe
mov byte [eax + 0x10], dl
mov eax, dword [ebp - 0x240]
xor ecx, ecx
lea edx, [ebp - 0x128]
mov dword [esp + 0x18], edx
xor ebx, ebx
xor edx, edx
mov dword [esp + 8], ecx
mov edi, 0x104
add eax, 8
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x240]
lea ecx, [ebp - 0x238]
mov dword [esp + 0x10], ebx
add eax, 0xc
mov dword [esp + 0x1c], edi
mov dword [esp + 0xc], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
call sub.KERNEL32.dll_GetVolumeInformationA
sub esp, 0x20
test eax, eax
mov eax, dword [ebp - 0x23c]
setne bl
test eax, eax
jne 0x6106b14a
test bl, bl
jne 0x6106adff
mov esi, dword [ebp - 0x240]
movzx ebx, byte [esi + 0x10]
test bl, 1
jne 0x6106ae09
test byte [0x6110a820], 1
jne 0x6106b21c
mov eax, dword [ebp - 0x240]
and bl, 0xf9
mov byte [eax + 0x10], bl
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
jmp 0x6106ab0f
cmp byte [ebp - 0x238], 0x5c
jne 0x6106ad1c
cmp byte [ebp - 0x237], 0x5c
jne 0x6106ad1c
mov ecx, dword [ebp - 0x240]
or dl, 1
mov byte [ecx + 0x10], dl
jmp 0x6106ad28
mov eax, dword [0x61105578]
jmp 0x6106ac6c
mov edx, dword [ebp - 0x240]
movzx ebx, byte [edx + 0x10]
mov edi, 0x61127bae
mov ecx, 3
lea esi, [ebp - 0x128]
cld
and eax, 0xff
dec ecx
js 0x6106ae35
lodsb al, byte [esi]
scasb al, byte es:[edi]
je 0x6106ae31
xor al, byte [eax + 0x61106b3c]
cmp al, byte [edi - 1]
jne 0x6106ae3c
test al, al
jne 0x6106ae1f
mov eax, 1
jmp 0x6106ae3e
xor eax, eax
cld
mov esi, dword [ebp - 0x240]
test eax, eax
setne al
mov edi, str.NTFS
movzx ecx, byte [esi + 0x11]
lea esi, [ebp - 0x128]
mov byte [ebp - 0x24a], 0
and cl, 0xfe
mov byte [ebp - 0x249], cl
mov ecx, 5
or byte [ebp - 0x249], al
repe cmpsb byte [esi], byte es:[edi]
jne 0x6106b136
test bl, 1
je 0x6106b136
mov eax, dword [ebp - 0x240]
mov eax, dword [eax + 8]
cmp eax, 0xb
mov dword [ebp - 0x258], eax
je 0x6106b19b
cmp eax, 0x2b
je 0x6106b19b
lea esi, [esi]
lea edi, [edi]
shl byte [ebp - 0x24a], 2
mov eax, 5
lea esi, [ebp - 0x128]
movzx edx, byte [ebp - 0x249]
mov byte [ebp - 0x24b], 0
mov edi, str.NTFS
movzx ecx, byte [ebp - 0x24a]
cld
and dl, 0xfb
mov byte [ebp - 0x269], dl
or byte [ebp - 0x269], cl
mov ecx, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x6106af10
test byte [ebp - 0x269], 4
jne 0x6106af10
mov byte [ebp - 0x24b], 1
lea esi, [esi]
lea edi, [edi]
movzx eax, byte [ebp - 0x269]
mov edi, 0x61127bb7
mov esi, dword [ebp - 0x240]
shl byte [ebp - 0x24b], 1
cld
and al, 0xfd
movzx edx, byte [ebp - 0x24b]
mov byte [ebp - 0x269], al
mov eax, 4
or byte [ebp - 0x269], dl
mov dl, bl
movzx ecx, byte [ebp - 0x269]
mov byte [esi + 0x11], cl
mov ecx, eax
lea esi, [ebp - 0x128]
repe cmpsb byte [esi], byte es:[edi]
movzx ecx, byte [ebp - 0x269]
sete al
shl al, 3
mov esi, dword [ebp - 0x240]
and dl, 0xfb
and cl, 0xf7
or cl, al
mov al, cl
add al, al
mov byte [esi + 0x11], cl
and al, 4
or dl, al
test byte [ebp - 0x258], 8
mov byte [ebp - 0x24c], 0
je 0x6106afa7
mov byte [esi + 0x10], dl
cmp byte [0x611462e1], 0
jne 0x6106afa0
test dl, 1
jne 0x6106afa7
mov byte [ebp - 0x24c], 1
shl byte [ebp - 0x24c], 3
mov al, dl
and al, 0xf7
xor edx, edx
or al, byte [ebp - 0x24c]
test byte [ebp - 0x258], 8
je 0x6106afd4
mov esi, dword [ebp - 0x240]
test al, 0xe0
mov byte [esi + 0x10], al
jne 0x6106b12f
test cl, 8
jne 0x6106b12f
cld
mov bl, al
mov eax, dword [ebp - 0x240]
shl dl, 4
and bl, 0xef
or bl, dl
mov byte [eax + 0x10], bl
mov edi, str.SUNWNFS
mov ecx, 8
lea esi, [ebp - 0x128]
mov al, bl
repe cmpsb byte [esi], byte es:[edi]
sete dl
add dl, dl
and al, 0xfd
or al, dl
mov edx, dword [ebp - 0x240]
mov byte [edx + 0x10], al
shr al, 5
movzx eax, al
cmp eax, 2
je 0x6106b120
cmp eax, 5
je 0x6106b120
cmp dword [ebp - 0x244], 0x18
jg 0x6106b120
mov ebx, dword [0x61144bcc]
mov ecx, 0xffffffff
mov edx, 0x61144bcc
mov eax, ebx
lock cmpxchg dword [edx], ecx
jne 0x6106b04e
mov dword [ebp - 0x250], eax
cmp eax, 0xffffffff
mov edi, eax
je 0x6106b1e9
cmp edi, 0x18
jg 0x6106b102
cmp dword [ebp - 0x244], edi
jge 0x6106b0c7
mov edx, dword [ebp - 0x240]
mov ecx, dword [ebp - 0x244]
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x260], eax
lea eax, [ecx + ecx*2]
lea esi, [eax*8 + 0x61144bc8]
mov dword [ebp - 0x25c], edx
inc dword [ebp - 0x244]
add esi, 0x18
mov edx, dword [esi + 4]
mov ecx, dword [ebp - 0x25c]
mov eax, dword [esi]
xor ecx, edx
mov edx, dword [ebp - 0x260]
xor eax, edx
or ecx, eax
je 0x6106b102
cmp dword [ebp - 0x244], edi
jl 0x6106b09d
mov esi, dword [ebp - 0x240]
lea eax, [edi + edi*2]
shl eax, 3
lea ecx, [eax + 0x61144be0]
mov edx, dword [esi]
mov dword [eax + 0x61144be0], edx
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x10], eax
lea eax, [edi + 1]
mov dword [ebp - 0x250], eax
mov eax, ebx
mov ecx, 0x61144bcc
mov edx, dword [ebp - 0x250]
lock cmpxchg dword [ecx], edx
jne 0x6106b10f
lea esi, [esi]
lea edi, [edi]
mov edx, 1
lea esp, [ebp - 0xc]
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dl, 1
jmp 0x6106afdd
mov ecx, dword [ebp - 0x240]
mov ecx, dword [ecx + 8]
mov dword [ebp - 0x258], ecx
jmp 0x6106aeb0
mov dword [esp], esi
call fcn.610fd4b8
mov eax, dword [ebp - 0x23c]
sub esp, 4
mov dword [esp], eax
call sub.KERNEL32.dll_CloseHandle
sub esp, 4
jmp 0x6106ad8b
mov eax, dword [ebp - 0x23c]
mov dword [esp], eax
call fcn.610fd4b8
sub esp, 4
test eax, eax
jne 0x6106b25c
test byte [0x6110a820], 1
je 0x6106ace0
mov eax, 0x61127bc3
jmp 0x6106acba
mov byte [ebp - 0x24a], 1
jmp 0x6106aeb0
mov esi, dword [ebp - 0x264]
mov edx, dword [ebp - 0x240]
mov eax, dword [esi + 0x61144be0]
mov dword [edx], eax
mov eax, dword [esi + 0x61144be4]
mov dword [edx + 4], eax
mov eax, dword [esi + 0x61144be8]
mov dword [edx + 8], eax
mov eax, dword [esi + 0x61144bec]
mov dword [edx + 0xc], eax
mov eax, dword [esi + 0x61144bf0]
mov dword [edx + 0x10], eax
mov edx, 1
jmp 0x6106b125
mov esi, 0xffffffff
xor eax, eax
call sym._low_priority_sleep
mov ebx, dword [0x61144bcc]
mov ecx, 0x61144bcc
mov edx, esi
mov eax, ebx
lock cmpxchg dword [ecx], edx
jne 0x6106b204
mov dword [ebp - 0x250], eax
cmp eax, 0xffffffff
mov edi, eax
je 0x6106b1ee
jmp 0x6106b065
mov dword [esp], 0x6110a820
lea esi, [ebp - 0x238]
mov ebx, str.bool_fs_info::update_const_char_
mov dword [esp + 0x10], esi
mov ecx, 0x40
mov esi, str.Cannot_get_volume_information___s____E
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 4], ecx
call method.strace.prntf_unsigned_int__char_const__char_const__..._
mov eax, dword [ebp - 0x240]
movzx ebx, byte [eax + 0x10]
jmp 0x6106adab
mov eax, 1
mov edi, 0x16
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x23c]
mov dword [esp], eax
call sym.set_privilege_void__cygpriv_idx__bool_
jmp 0x6106ace0