Function at 0x50df60
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x244
mov eax, dword [0x6480b4]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x651b30], 0
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x218], eax
mov eax, dword [ebp + 0x14]
push edi
mov dword [ebp - 0x220], ebx
mov dword [ebp - 0x224], eax
je 0x50e320
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x50dfb6
cmp edi, 5
je 0x50e035
cmp edi, 0x20
jne 0x50e320
mov dword [ebp - str..PhysicalDrive], 0x644dc4
mov eax, dword [0x651b34]
xor edx, edx
push esi
xor esi, esi
mov dword [ebp - 0x214], edx
xor ecx, ecx
mov dword [ebp - 0x208], esi
cmp eax, 4
jne 0x50dfe2
cmp edi, 5
je 0x50dfeb
cmp edi, 0x20
jne 0x50e08a
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov edx, eax
xor esi, esi
mov dword [ebp - 0x210], edx
mov dword [ebp - 0x21c], esi
mov eax, 1
mov ecx, esi
shl eax, cl
test edx, eax
je 0x50e073
lea ebx, [esi + 0x41]
push ebx
call fcn.00519200
add esp, 4
cmp eax, 0x100
jne 0x50e02a
push ebx
call fcn.00519200
add esp, 4
cmp edi, 5
jne 0x50e044
cmp eax, edi
je 0x50e052
jmp 0x50e06d
mov dword [ebp - str..CdRom], 0x644dc8
jmp 0x50dfc0
cmp edi, 0x20
jne 0x50e06d
cmp eax, edi
je 0x50e052
cmp eax, 0x21
jne 0x50e06d
mov edx, dword [ebp - 0x21c]
mov eax, edx
inc edx
mov dword [ebp - 0x21c], edx
cmp eax, dword [ebp - 0x218]
je 0x50e10e
mov edx, dword [ebp - 0x210]
inc esi
cmp esi, 0x1a
jb 0x50e001
xor ecx, ecx
xor edx, edx
xor esi, esi
mov ebx, dword [ebp - 0x220]
mov eax, dword [0x651b34]
test eax, eax
je 0x50e237
cmp eax, 4
jne 0x50e0a0
cmp edi, 5
je 0x50e13b
cmp edi, 0x20
je 0x50e13b
mov ecx, dword [ebp - 0x20c]
lea edx, [ebp - 0x104]
mov ecx, dword [ecx]
sub edx, ecx
nop dword [eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x50e0c0
lea ecx, [ebp - 0x104]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x50e0e0
push dword [ebp - 0x218]
sub ecx, edx
lea eax, [ebp - 0x104]
sar ecx, 1
push 0x5f6e4c
lea eax, [eax + ecx*2]
push eax
call fcn.0047c390
add esp, 0xc
jmp 0x50e143
movzx esi, bx
movzx eax, si
push eax
lea eax, [ebp - 0x104]
mov dword [ebp - 0x208], esi
push 0x5efab0
push eax
call fcn.0047c390
add esp, 0xc
mov ecx, 1
xor edx, edx
jmp 0x50e07f
test ecx, ecx
je 0x50e2cd
test ebx, ebx
jne 0x50e15a
cmp edi, 0x20
jne 0x50e15a
mov eax, dword [ebp - 0x208]
or ebx, 0xffffffff
jmp 0x50e2df
push 0
push dword [ebp - 0x224]
lea eax, [ebp - 0x104]
push 3
push 0
push 3
push ebx
push eax
call dword [0x648de0]
mov ebx, eax
mov dword [ebp - 0x20c], ebx
cmp ebx, 0xffffffff
je 0x50e2cf
mov dword [ebp - 0x214], 1
cmp edi, 5
jne 0x50e2cf
test si, si
jne 0x50e2cf
mov ebx, dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
xor eax, eax
mov word [ebp - 0x106], ax
lea eax, [ebp - 0x204]
push 0x7f
push eax
lea eax, [ebp - 0xfc]
push eax
call ebx
test eax, eax
je 0x50e21e
xor eax, eax
mov dword [ebp - 0x102], 0x3a
mov word [ebp - 6], ax
mov esi, 0x41
nop dword [eax]
push 0x7b
lea eax, [ebp - 0xfc]
mov word [ebp - 0x104], si
push eax
lea eax, [ebp - 0x104]
push eax
call ebx
test eax, eax
je 0x50e217
lea eax, [ebp - 0x204]
push eax
lea eax, [ebp - 0xfc]
push eax
call fcn.005d09f9
add esp, 8
test eax, eax
je 0x50e229
inc esi
cmp si, 0x5a
jbe 0x50e1e0
mov ebx, dword [ebp - 0x20c]
jmp 0x50e2cf
mov ebx, dword [ebp - 0x20c]
movzx eax, si
jmp 0x50e2d5
test edi, edi
jne 0x50e2b8
cmp dword [0x651b40], edi
je 0x50e2cd
cmp dword [0x651b44], edi
je 0x50e2cd
mov ecx, dword [0x651b48]
test ecx, ecx
je 0x50e2cd
mov eax, 0x1e
mov dword [ebp - 0x22a], edi
push eax
mov word [ebp - 0x244], ax
xorps xmm0, xmm0
lea eax, [ebp - 0x244]
movlpd qword [ebp - 0x242], xmm0
push eax
mov al, byte [ebp - 0x218]
sub al, 0x80
movlpd qword [ebp - 0x23a], xmm0
movzx eax, al
push eax
movlpd qword [ebp - 0x232], xmm0
call ecx
xor ebx, ebx
test eax, eax
mov eax, dword [ebp - 0x208]
je 0x50e2d5
mov dword [ebp - 0x214], 1
jmp 0x50e2d5
cmp edi, 0x20
jne 0x50e2cd
test ecx, ecx
mov eax, 1
cmovne edx, eax
mov dword [ebp - 0x214], edx
xor ebx, ebx
mov eax, dword [ebp - 0x208]
xor esi, esi
cmp dword [ebp - 0x214], esi
je 0x50e30d
push dword [ebp - 0x224]
push eax
push dword [ebp - 0x218]
push edi
push 0
push ebx
call fcn.0050c440
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x50e30d
cmp dword [0x651b34], eax
je 0x50e30d
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
pop esi
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0058bb64
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
xor ecx, ebp
pop ebx
call fcn.0058bb64
mov esp, ebp
pop ebp
ret