Function at 0x4f7705
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x238
mov edi, dword [ebp + 0xc]
mov eax, dword [0x5a8564]
xor eax, ebp
mov dword [ebp - 0x10], eax
lea esi, [ebp - 0x220]
mov ecx, esi
push edi
call fcn.00401ce0
push esi
call fcn.004f6fe4
add esp, 4
mov ebx, eax
cmp byte [esi + 0xb], 0
jns 0x4f774b
push dword [ebp - 0x220]
call fcn.005327b0
add esp, 4
test bl, bl
mov bl, 1
jne 0x4f79e0
mov eax, dword [ebp + 8]
pcmpeqd xmm0, xmm0
lea ebx, [ebp - 0x234]
movdqu xmmword [ebx], xmm0
mov dword [ebx + 0x10], 0xffffffff
push eax
push ebx
call fcn.004f72bf
add esp, 8
cmp byte [ebx], 0
je 0x4f78bc
xor eax, eax
dec eax
lea ebx, [ebp - 0x240]
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
mov ecx, ebx
push edi
call fcn.00401ce0
mov ecx, ebx
call fcn.004261d0
cmp word [eax], 0x5c
jne 0x4f7801
movzx eax, byte [ebp - 0x235]
test al, al
jns 0x4f77b7
mov eax, dword [ebp - 0x23c]
dec eax
lea edx, [ebp - 0x18]
lea edi, [ebp - 0x240]
lea ecx, [ebp - 0x220]
push edx
push eax
push 0
push edi
call fcn.00429a70
cmp byte [edi + 0xb], 0
jns 0x4f77e5
push dword [ebp - 0x240]
call fcn.005327b0
add esp, 4
mov eax, dword [ebp - 0x218]
mov dword [ebp - 0x238], eax
movq xmm0, qword [ebp - 0x220]
movq qword [ebp - 0x240], xmm0
cmp byte [ebp - 0x235], 0
jns 0x4f7810
mov ebx, dword [ebp - 0x240]
lea edi, [ebp - 0x230]
cmp byte [edi + 0xb], 0
mov eax, edi
jns 0x4f7824
mov eax, dword [ebp - 0x230]
push ebx
push eax
call fcn.00548987
add esp, 8
test eax, eax
je 0x4f78c3
lea ebx, [ebp - 0x240]
mov ecx, ebx
mov edx, ebx
call fcn.004f7583
mov byte [ebp - 0x241], al
mov ecx, ebx
call fcn.004f761a
test al, al
jne 0x4f78ca
cmp byte [ebp - 0x241], 0
je 0x4f78ca
xor eax, eax
mov dword [ebp - 0x21c], eax
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x218], eax
cmp byte [ebp - 0x234], 0
je 0x4f7a3b
mov ecx, edi
mov edx, esi
call fcn.004f766e
test al, al
je 0x4f78fe
cmp byte [ebp - 0x235], 0
jns 0x4f789c
mov ebx, dword [ebp - 0x240]
cmp byte [ebp - 0x215], 0
jns 0x4f78ab
mov esi, dword [ebp - 0x220]
push ebx
push esi
call fcn.00548987
add esp, 8
test eax, eax
sete bl
jmp 0x4f7900
xor ebx, ebx
jmp 0x4f79e0
mov bl, 1
jmp 0x4f79a9
xor ebx, ebx
test al, al
je 0x4f79a9
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], ebx
push 0x208
push 0xff
push esi
call fcn.00536680
add esp, 0xc
cmp byte [ebp - 0x235], 0
jns 0x4f7920
mov eax, dword [ebp - 0x240]
jmp 0x4f7926
xor ebx, ebx
cmp byte [ebp - 0x215], 0
jns 0x4f79a9
push dword [ebp - 0x220]
call fcn.005327b0
add esp, 4
jmp 0x4f79a9
lea eax, [ebp - 0x240]
mov eax, dword [eax]
lea ecx, [ebp - 0x18]
mov dword [ecx], eax
push 0x104
push esi
push ecx
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
cmp eax, 2
jb 0x4f79a9
cmp eax, 0x104
je 0x4f79a9
push esi
call fcn.0054c5c4
add esp, 4
cmp byte [ebp - 0x234], 0
je 0x4f7a39
mov ebx, eax
movzx eax, byte [ebp - 0x235]
test al, al
jns 0x4f796f
mov eax, dword [ebp - 0x23c]
lea ecx, [ebx + eax]
add ecx, 0xfffffffe
movzx eax, byte [ebp - 0x225]
mov edx, eax
test al, al
jns 0x4f7988
mov edx, dword [ebp - 0x22c]
cmp ecx, edx
jne 0x4f79a7
mov ecx, edi
test al, al
jns 0x4f7998
mov ecx, dword [ebp - 0x230]
push ebx
push esi
push ecx
call fcn.00548b04
add esp, 0xc
test eax, eax
je 0x4f79f7
xor ebx, ebx
cmp byte [ebp - 0x235], 0
jns 0x4f79c0
push dword [ebp - 0x240]
call fcn.005327b0
add esp, 4
cmp byte [ebp - 0x234], 0
je 0x4f79e0
cmp byte [ebp - 0x225], 0
jns 0x4f79e0
push dword [ebp - 0x230]
call fcn.005327b0
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005327f1
mov eax, ebx
add esp, 0x238
pop esi
pop edi
pop ebx
pop ebp
ret
cmp byte [ebp - 0x234], 0
je 0x4f7a3b
lea ecx, [ebp - 0x23c]
mov eax, dword [ecx - 4]
add eax, 4
cmp byte [ecx + 7], 0
cmovns eax, ecx
cmp byte [ebp - 0x225], 0
jns 0x4f7a22
mov edi, dword [ebp - 0x230]
lea ecx, [edi + ebx*2]
push eax
push ecx
call fcn.00548987
add esp, 8
test eax, eax
sete bl
jmp 0x4f79a9
ud2
call fcn.00403b24