Function at 0x6106aff0
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 0x6106b0b6
test byte [0x6110c854], 1
jne 0x6106b060
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], 0x6110c854
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 0x6106b04f
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 0x6106b051
xor edx, edx
mov eax, dword [0x61146a1c]
mov dword [ebp - 0x244], edx
cmp dword [ebp - 0x244], eax
mov dword [ebp - 0x248], eax
jge 0x6106b170
mov edx, dword [0x61146a34]
mov eax, dword [0x61146a30]
mov ecx, edx
or ecx, eax
je 0x6106b170
xor eax, eax
mov ebx, 0x61146a30
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 0x6106b6e7
inc dword [ebp - 0x244]
add ebx, 0x18
mov eax, dword [ebp - 0x248]
add dword [ebp - 0x264], 0x18
cmp dword [ebp - 0x244], eax
jge 0x6106b170
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
mov ecx, edx
or ecx, eax
jne 0x6106b130
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 [0x611650ec]
test byte [eax + 0x10], 0x20
je 0x6106b220
mov eax, dword [0x61106ec4]
add eax, 0x88
mov eax, dword [eax + 0xd4]
test eax, eax
je 0x6106b335
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.610ff218
sub esp, 0x18
test eax, eax
jne 0x6106b6ab
test byte [0x6110c854], 1
je 0x6106b220
mov eax, 0x61129c99
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], 0x6110c854
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 0x6106b324
test eax, eax
je 0x6106b30a
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 0x6106b68a
test bl, bl
jne 0x6106b33f
mov esi, dword [ebp - 0x240]
movzx ebx, byte [esi + 0x10]
test bl, 1
jne 0x6106b349
test byte [0x6110c854], 1
jne 0x6106b75c
mov eax, dword [ebp - 0x240]
and bl, 0xf9
mov byte [eax + 0x10], bl
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
jmp 0x6106b04f
cmp byte [ebp - 0x238], 0x5c
jne 0x6106b25c
cmp byte [ebp - 0x237], 0x5c
jne 0x6106b25c
mov ecx, dword [ebp - 0x240]
or dl, 1
mov byte [ecx + 0x10], dl
jmp 0x6106b268
mov eax, dword [0x6110755c]
jmp 0x6106b1ac
mov edx, dword [ebp - 0x240]
movzx ebx, byte [edx + 0x10]
mov edi, 0x61129cae
mov ecx, 3
lea esi, [ebp - 0x128]
cld
and eax, 0xff
dec ecx
js 0x6106b375
lodsb al, byte [esi]
scasb al, byte es:[edi]
je 0x6106b371
xor al, byte [eax + 0x61108b40]
cmp al, byte [edi - 1]
jne 0x6106b37c
test al, al
jne 0x6106b35f
mov eax, 1
jmp 0x6106b37e
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 0x6106b676
test bl, 1
je 0x6106b676
mov eax, dword [ebp - 0x240]
mov eax, dword [eax + 8]
cmp eax, 0xb
mov dword [ebp - 0x258], eax
je 0x6106b6db
cmp eax, 0x2b
je 0x6106b6db
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 0x6106b450
test byte [ebp - 0x269], 4
jne 0x6106b450
mov byte [ebp - 0x24b], 1
lea esi, [esi]
lea edi, [edi]
movzx eax, byte [ebp - 0x269]
mov edi, 0x61129cb7
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 0x6106b4e7
mov byte [esi + 0x10], dl
cmp byte [0x61148131], 0
jne 0x6106b4e0
test dl, 1
jne 0x6106b4e7
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 0x6106b514
mov esi, dword [ebp - 0x240]
test al, 0xe0
mov byte [esi + 0x10], al
jne 0x6106b66f
test cl, 8
jne 0x6106b66f
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 0x6106b660
cmp eax, 5
je 0x6106b660
cmp dword [ebp - 0x244], 0x18
jg 0x6106b660
mov ebx, dword [0x61146a1c]
mov ecx, 0xffffffff
mov edx, 0x61146a1c
mov eax, ebx
lock cmpxchg dword [edx], ecx
jne 0x6106b58e
mov dword [ebp - 0x250], eax
cmp eax, 0xffffffff
mov edi, eax
je 0x6106b729
cmp edi, 0x18
jg 0x6106b642
cmp dword [ebp - 0x244], edi
jge 0x6106b607
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 + 0x61146a18]
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 0x6106b642
cmp dword [ebp - 0x244], edi
jl 0x6106b5dd
mov esi, dword [ebp - 0x240]
lea eax, [edi + edi*2]
shl eax, 3
lea ecx, [eax + 0x61146a30]
mov edx, dword [esi]
mov dword [eax + 0x61146a30], 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, 0x61146a1c
mov edx, dword [ebp - 0x250]
lock cmpxchg dword [ecx], edx
jne 0x6106b64f
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 0x6106b51d
mov ecx, dword [ebp - 0x240]
mov ecx, dword [ecx + 8]
mov dword [ebp - 0x258], ecx
jmp 0x6106b3f0
mov dword [esp], esi
call fcn.610ff4b8
mov eax, dword [ebp - 0x23c]
sub esp, 4
mov dword [esp], eax
call sub.KERNEL32.dll_CloseHandle
sub esp, 4
jmp 0x6106b2cb
mov eax, dword [ebp - 0x23c]
mov dword [esp], eax
call fcn.610ff4b8
sub esp, 4
test eax, eax
jne 0x6106b79c
test byte [0x6110c854], 1
je 0x6106b220
mov eax, 0x61129cc3
jmp 0x6106b1fa
mov byte [ebp - 0x24a], 1
jmp 0x6106b3f0
mov esi, dword [ebp - 0x264]
mov edx, dword [ebp - 0x240]
mov eax, dword [esi + 0x61146a30]
mov dword [edx], eax
mov eax, dword [esi + 0x61146a34]
mov dword [edx + 4], eax
mov eax, dword [esi + 0x61146a38]
mov dword [edx + 8], eax
mov eax, dword [esi + 0x61146a3c]
mov dword [edx + 0xc], eax
mov eax, dword [esi + 0x61146a40]
mov dword [edx + 0x10], eax
mov edx, 1
jmp 0x6106b665
mov esi, 0xffffffff
xor eax, eax
call sym._low_priority_sleep
mov ebx, dword [0x61146a1c]
mov ecx, 0x61146a1c
mov edx, esi
mov eax, ebx
lock cmpxchg dword [ecx], edx
jne 0x6106b744
mov dword [ebp - 0x250], eax
cmp eax, 0xffffffff
mov edi, eax
je 0x6106b72e
jmp 0x6106b5a5
mov dword [esp], 0x6110c854
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 0x6106b2eb
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 0x6106b220