Function at 0x441dc0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x254
mov eax, dword [0x530f98]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov eax, dword [0x533128]
test al, 1
je 0x442252
mov eax, dword [0x533124]
cmp dword [eax + 8], 0
jne 0x441eec
mov esi, 0xfffffff8
lea ebx, [ebp - 0x21c]
jmp 0x441e07
inc esi
je 0x441ee7
push 0x20a
push 0
push ebx
call fcn.004b8bc0
add esp, 0xc
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x224], 0
mov byte [ebp - 0x21d], 1
lea eax, [esi + 0x69]
mov word [ebp - 0x228], ax
mov word [ebp - 0x226], 0
lea edi, [ebp - 0x228]
mov ecx, edi
push 0x4e99c8
call fcn.00429ed8
cmp byte [ebp - 0x21d], 0
jns 0x441e66
mov edi, dword [ebp - 0x228]
push 0x104
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
test eax, eax
je 0x441ec7
mov eax, ebx
mov ebx, dword [0x533124]
mov edi, eax
mov dword [ebp - 0x240], eax
lea ecx, [ebp - 0x23c]
lea eax, [ebp - 0x228]
push eax
call fcn.00429824
mov ecx, ebx
lea eax, [ebp - 0x240]
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.00442a30
cmp byte [ebp - 0x231], 0
jns 0x441ec5
push dword [ebp - 0x23c]
call fcn.004af3c6
add esp, 4
mov ebx, edi
cmp byte [ebp - 0x21d], 0
jns 0x441e00
push dword [ebp - 0x228]
call fcn.004af3c6
add esp, 4
jmp 0x441e00
mov eax, dword [0x533124]
mov ebx, dword [eax]
add eax, 4
cmp eax, ebx
je 0x44217f
lea ecx, [ebp - 0x210]
mov dword [ebp - 0x250], ecx
mov dword [ebp - 0x25c], eax
jmp 0x441f20
mov ebx, edx
mov eax, dword [ebp - 0x25c]
cmp eax, edx
je 0x44217f
lea eax, [ebx + 0x10]
lea esi, [ebp - 0x21c]
mov ecx, esi
push eax
call fcn.00429824
lea eax, [ebx + 0x1c]
lea ecx, [ebp - 0x210]
push eax
call fcn.00429824
movzx eax, byte [ebp - 0x211]
mov dword [ebp - 0x248], eax
mov dword [ebp - 0x244], esi
mov dword [ebp - 0x260], eax
test al, al
jns 0x441f75
mov eax, dword [ebp - 0x218]
mov dword [ebp - 0x248], eax
mov eax, dword [ebp - 0x21c]
mov dword [ebp - 0x244], eax
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + 0xb]
test cl, cl
jns 0x441f85
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ebp - 0x258], eax
mov edx, dword [ebp - 0x248]
test edx, edx
je 0x4420f9
test cl, cl
jns 0x441fa3
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
cmp ecx, edx
jge 0x441fe0
cmp byte [ebp - 0x205], 0
mov eax, dword [ebp - 0x260]
js 0x442090
test al, al
js 0x4420ac
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x4420c0
nop dword [eax]
mov edx, ecx
mov ecx, dword [ecx]
test ecx, ecx
jne 0x441fd0
jmp 0x441f10
mov edi, dword [ebp - 0x258]
lea eax, [edi + ecx*2]
mov dword [ebp - 0x254], eax
mov eax, dword [ebp - 0x244]
movzx esi, word [eax]
mov eax, ecx
sub eax, edx
inc eax
je 0x441fa7
add ecx, 1
nop word cs:[eax + eax]
nop dword [eax]
cmp word [edi], si
je 0x442030
add edi, 2
add ecx, 0xffffffff
cmp edx, ecx
jne 0x442010
jmp 0x441fa7
mov word [ebp - 0x24a], si
mov eax, 1
nop dword [eax]
cmp edx, eax
je 0x4420e1
movzx ecx, word [edi + eax*2]
lea esi, [eax + 1]
mov edx, dword [ebp - 0x244]
cmp cx, word [edx + eax*2]
mov eax, esi
mov edx, dword [ebp - 0x248]
je 0x442040
add edi, 2
mov ecx, dword [ebp - 0x254]
sub ecx, edi
sar ecx, 1
cmp ecx, edx
movzx esi, word [ebp - 0x24a]
jge 0x441ff8
jmp 0x441fa7
push dword [ebp - 0x210]
call fcn.004af3c6
add esp, 4
mov al, byte [ebp - 0x211]
test al, al
jns 0x441fc2
push dword [ebp - 0x21c]
call fcn.004af3c6
add esp, 4
jmp 0x441fc2
mov edx, dword [ebx + 8]
cmp dword [edx], ebx
je 0x441f10
add ebx, 8
nop
mov ecx, dword [ebx]
lea ebx, [ecx + 8]
mov edx, dword [ecx + 8]
cmp dword [edx], ecx
jne 0x4420d0
jmp 0x441f10
cmp dword [ebp - 0x254], edi
je 0x441fa7
cmp dword [ebp - 0x258], edi
jne 0x441fa7
mov eax, dword [ebp + 8]
mov esi, eax
add eax, 0xc
lea edi, [ebp - 0x240]
mov ecx, edi
push eax
push 0xffffffffffffffff
push edx
push esi
call fcn.004298c8
movzx eax, byte [ebp - 0x205]
test al, al
jns 0x442130
mov eax, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x210]
mov dword [ebp - 0x250], ecx
mov ecx, edi
push eax
push dword [ebp - 0x250]
push 0
call fcn.0042a07e
mov esi, dword [eax]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 7]
mov dword [ebp - 0x225], edx
mov dword [ebp - 0x228], ecx
mov bl, byte [eax + 0xb]
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 8], 0
mov ecx, dword [ebp + 0xc]
cmp byte [ecx + 0xb], 0
js 0x44218d
mov word [ecx], 0
mov byte [ecx + 0xb], 0
jmp 0x4421b5
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004af401
xor eax, eax
jmp 0x442209
mov eax, dword [ecx]
mov word [eax], 0
mov dword [ecx + 4], 0
cmp byte [ecx + 0xb], 0
jns 0x4421b5
push dword [ecx]
call fcn.004af3c6
mov ecx, dword [ebp + 0xc]
add esp, 4
mov dword [ecx + 8], 0
mov dword [ecx], esi
mov eax, dword [ebp - 0x228]
mov edx, ecx
mov ecx, dword [ebp - 0x225]
mov dword [edx + 4], eax
mov dword [edx + 7], ecx
mov byte [edx + 0xb], bl
mov dword [ebp - 0x225], 0
mov dword [ebp - 0x228], 0
cmp byte [ebp - 0x235], 0
js 0x442214
cmp byte [ebp - 0x205], 0
js 0x44222b
cmp byte [ebp - 0x211], 0
js 0x442242
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004af401
mov al, 1
add esp, 0x254
pop esi
pop edi
pop ebx
pop ebp
ret
push dword [ebp - 0x240]
call fcn.004af3c6
add esp, 4
cmp byte [ebp - 0x205], 0
jns 0x4421f4
push dword [ebp - 0x210]
call fcn.004af3c6
add esp, 4
cmp byte [ebp - 0x211], 0
jns 0x4421fd
push dword [ebp - 0x21c]
call fcn.004af3c6
add esp, 4
jmp 0x4421fd
or eax, 1
mov dword [0x533128], eax
push 0xc
call fcn.004af396
add esp, 4
lea ecx, [eax + 4]
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax], ecx
mov dword [0x533124], eax
cmp dword [eax + 8], 0
jne 0x441eec
jmp 0x441df2