Function at 0x500844
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x238
mov esi, dword [ebp + 0xc]
mov eax, dword [0x597010]
xor eax, ebp
mov dword [ebp - 0x10], eax
lea edi, [ebp - 0x220]
mov ecx, edi
push esi
call fcn.0042d4b2
push edi
call fcn.00500154
add esp, 4
mov ebx, eax
cmp byte [edi + 0xb], 0
jns 0x50088a
push dword [ebp - 0x220]
call fcn.00528424
add esp, 4
test bl, bl
mov bl, 1
jne 0x500b5e
mov eax, dword [ebp + 8]
pcmpeqd xmm0, xmm0
lea edi, [ebp - 0x234]
movdqu xmmword [edi], xmm0
mov dword [edi + 0x10], 0xffffffff
push eax
push edi
call fcn.005003fc
add esp, 8
cmp byte [edi], 0
je 0x5008e8
xor eax, eax
dec eax
lea edi, [ebp - 0x240]
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov ecx, edi
push esi
call fcn.0042d4b2
mov cl, byte [edi + 0xb]
movzx eax, cl
test cl, cl
js 0x5008ef
je 0x500bbe
mov edx, eax
jmp 0x500903
xor ebx, ebx
jmp 0x500b5e
mov edx, dword [ebp - 0x23c]
test edx, edx
je 0x500bbe
mov edi, dword [ebp - 0x240]
cmp word [edi + edx*2 - 2], 0x5c
jne 0x500965
test cl, cl
jns 0x500915
mov eax, dword [ebp - 0x23c]
dec eax
lea edx, [ebp - 0x18]
lea esi, [ebp - 0x240]
lea ecx, [ebp - 0x220]
push edx
push eax
push 0
push esi
call fcn.0044e7aa
cmp byte [esi + 0xb], 0
jns 0x500943
push dword [ebp - 0x240]
call fcn.00528424
add esp, 4
mov eax, dword [ebp - 0x218]
mov dword [ebp - 0x238], eax
movq xmm0, qword [ebp - 0x220]
movq qword [ebp - 0x240], xmm0
mov cl, byte [ebp - 0x235]
test cl, cl
jns 0x500971
mov eax, dword [ebp - 0x240]
jmp 0x500977
lea eax, [ebp - 0x240]
lea edi, [ebp - 0x230]
cmp byte [edi + 0xb], 0
mov ecx, edi
jns 0x50098b
mov ecx, dword [ebp - 0x230]
push eax
push ecx
call fcn.0053e617
add esp, 8
test eax, eax
je 0x500a29
lea ebx, [ebp - 0x240]
mov ecx, ebx
mov edx, ebx
call fcn.005006af
mov byte [ebp - 0x241], al
mov ecx, ebx
call fcn.00500746
test al, al
jne 0x500a30
cmp byte [ebp - 0x241], 0
je 0x500a30
xor eax, eax
mov dword [ebp - 0x21c], eax
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x218], eax
cmp byte [ebp - 0x234], 0
je 0x500bb9
lea esi, [ebp - 0x220]
mov ecx, edi
mov edx, esi
call fcn.005007ad
test al, al
je 0x500a6a
cmp byte [ebp - 0x235], 0
jns 0x500a09
mov ebx, dword [ebp - 0x240]
cmp byte [ebp - 0x215], 0
jns 0x500a18
mov esi, dword [ebp - 0x220]
push ebx
push esi
call fcn.0053e617
add esp, 8
test eax, eax
sete bl
jmp 0x500a6c
mov bl, 1
jmp 0x500b27
xor ebx, ebx
test al, al
je 0x500b27
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], ebx
push 0x208
push 0xff
lea eax, [ebp - 0x220]
push eax
call fcn.0052c210
add esp, 0xc
cmp byte [ebp - 0x235], 0
jns 0x500a8c
mov eax, dword [ebp - 0x240]
jmp 0x500a92
xor ebx, ebx
cmp byte [ebp - 0x215], 0
jns 0x500b27
push dword [ebp - 0x220]
call fcn.00528424
add esp, 4
jmp 0x500b27
lea eax, [ebp - 0x240]
mov eax, dword [eax]
lea ecx, [ebp - 0x18]
mov dword [ecx], eax
push 0x104
lea eax, [ebp - 0x220]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
cmp eax, 2
jb 0x500b27
cmp eax, 0x104
je 0x500b27
lea eax, [ebp - 0x220]
push eax
call fcn.00542c14
add esp, 4
cmp byte [ebp - 0x234], 0
je 0x500bb7
mov ebx, eax
movzx eax, byte [ebp - 0x235]
test al, al
jns 0x500ae7
mov eax, dword [ebp - 0x23c]
lea ecx, [ebx + eax]
add ecx, 0xfffffffe
movzx eax, byte [ebp - 0x225]
mov edx, eax
test al, al
jns 0x500b00
mov edx, dword [ebp - 0x22c]
cmp ecx, edx
jne 0x500b25
mov ecx, edi
test al, al
jns 0x500b10
mov ecx, dword [ebp - 0x230]
push ebx
lea eax, [ebp - 0x220]
push eax
push ecx
call fcn.0053e794
add esp, 0xc
test eax, eax
je 0x500b75
xor ebx, ebx
cmp byte [ebp - 0x235], 0
jns 0x500b3e
push dword [ebp - 0x240]
call fcn.00528424
add esp, 4
cmp byte [ebp - 0x234], 0
je 0x500b5e
cmp byte [ebp - 0x225], 0
jns 0x500b5e
push dword [ebp - 0x230]
call fcn.00528424
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00528e13
mov eax, ebx
add esp, 0x238
pop esi
pop edi
pop ebx
pop ebp
ret
cmp byte [ebp - 0x234], 0
je 0x500bb9
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 0x500ba0
mov edi, dword [ebp - 0x230]
lea ecx, [edi + ebx*2]
push eax
push ecx
call fcn.0053e617
add esp, 8
test eax, eax
sete bl
jmp 0x500b27
ud2
call fcn.0042ebc8
int3