Function at 0x41e468
Capabilities:
Get disk information

Disassembly:
in al, 0x5f
inc eax
add ah, ch
pop edi
inc eax
add byte [eax + 0x62], cl
inc eax
add byte [eax + 0x62], al
inc eax
add byte [eax + 0x62], ah
inc eax
add byte [edx + 0x40], ah
add byte [eax + 0x62], ch
inc eax
add byte [edx + 0x40], bl
add byte [esi + ebx*2 + 0x5ed80040], bh
inc eax
add byte [edi + ebx*2], cl
inc eax
add byte [eax], dh
lcall 0x42, 0x9a380042
push esp
lcall 0x42, 0x9a600042
sbb byte [edx - 0x6577ffbe], 0x42
add al, bh
xchg edx, eax
inc edx
add byte [eax], ah
lcall 0x42, 0x9ac80042
rcr byte [edx - 0x651fffbe], 1
inc edx
add al, ah
cdq
inc edx
add byte [eax], al
add byte [0x41e1cf00], al
add byte [eax + eax + 0xb], cl
add ch, dh
loope 0x41e1e0
add byte [edx], cl
pop es
add byte [edx], bl
loop 0x41e1e8
add byte [edx], cl
or byte [eax], al
pop esp
loop 0x41e1f0
add byte [edx], cl
or dword [eax], eax
sahf
loop 0x41e1f8
add byte [edx], cl
or al, byte [eax]
or al, 0
adc byte [ebp + edx*2 + 0x6e], dl
imul esp, dword [ebx + 0x6f], 0x6e456564
arpl word [edi + 0x64], bp
imul ebp, dword [esi + 0x67], 0x99e00026
inc edx
add byte [esi], al
inc ebx
jb 0x41e23e
popal
je 0x41e241
add eax, dword [eax]
add byte [eax], al
add byte [eax], al
or byte [eax], al
add dword [eax], ecx
aam 0xe2
inc ecx
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
add al, byte [eax]
and eax, 0x429a2000
add byte [0x6e6f6c43], al
lcall 0x6f6c, 0x43050042
outsb dx, byte [esi]
add eax, dword gs:[eax]
inc eax
fld dword [ecx]
or byte [eax], al
add dword [eax], ecx
aam 0xe2
inc ecx
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
add al, byte [eax]
inc edx
add al, cl
lcall 0x7465, 0x470f0042
dec ebp
popal
js 0x41e26a
jns 0x41e29e
inc ebx
outsd dx, dword [esi]
jne 0x41e29d
je 0x41e234
add byte [eax + edx + 0x80040], bl
add cl, byte [eax]
aam 0xe2
inc ecx
inc eax
add byte [eax], cl
add byte [edx], al
or ah, dl
loop 0x41e27e
add byte [eax], al
add byte [ebx + edx*2], al
add byte [eax], al
add al, 0x53
push ebx
insb byte es:[edi], dx
add al, byte [eax]
add byte [eax + edx + 0x10040], bl
or dword [ebx + 0x68], eax
popal
jb 0x41e297
outsd dx, dword [esi]
jne 0x41e2c5
je 0x41e25b
add byte [edx], al
add byte [edx], al
rcr byte [edx + 0x470f0042], 1
je 0x41e2b4
popal
js 0x41e2ad
push 0x6f437261
jne 0x41e2df
je 0x41e276
add byte [eax + edx + 0x80040], bl
add cl, byte [eax]
aam 0xe2
inc eax
add byte [eax], cl
add byte [edx], al
or ah, dl
loop 0x41e2c0
inc ecx
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
add byte [eax + edx + 0x10040], bl
or dword [edx + 0x79], eax
je 0x41e2fa
inc ebx
outsd dx, dword [esi]
jne 0x41e307
je 0x41e29d
add byte [edx], al
add byte [esi], dh
add al, ah
add al, ah
lcall 0x7465, 0x470b0042
push eax
jb 0x41e310
popal
insd dword es:[edi], dx
bound ebp, qword [ebp + 3]
add byte [eax], cl
xor al, byte [eax]
or byte [eax], al
add cl, byte [eax]
aam 0xe2
inc ecx
inc eax
add byte [eax], cl
add byte [edx], al
or ah, dl
loop 0x41e2fe
add byte [eax], al
add byte [ebx + edx*2], al
add al, 0x53
insb byte es:[edi], dx
add al, byte [eax]
add al, byte [eax]
inc eax
or byte [edx], dh
inc eax
add byte [ecx], al
add byte [ecx], al
add dword [edx], eax
add byte [edx], al
add al, bl
loop 0x41e318
add byte [edi], al
adc byte [ebp + edx*2 + 0x6e], dl
imul esp, dword [ebx + 0x6f], 0x6e456564
outsd dx, dword [esi]
inc ebp
outsb dx, byte [esi]
arpl word [edi + 0x64], bp
imul ebp, dword [esi + 0x67], 0x41e160
inc eax
fld dword [ecx]
add byte [eax], al
rcpps xmm7, xmmword [ecx + 0x73]
je 0x41e35f
insd dword es:[edi], dx
push ebx
jns 0x41e372
jae 0x41e355
push ebp
je 0x41e36b
insb byte es:[edi], dx
jae 0x41e305
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [ebx + 0x41], ah
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [esp], ah
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
and al, 0xe4
inc ecx
add byte [eax], al
add byte [eax], al
add byte [ebx + 0x41], dl
add byte [eax], al
stosb byte es:[edi], al
jecxz 0x41e370
add byte [eax], dl
add byte [eax], al
add byte [eax], cl
loope 0x41e378
add ah, ah
pop edi
inc eax
add ah, ch
pop edi
inc eax
add byte [eax + 0x62], cl
inc eax
add byte [eax + 0x62], al
inc eax
add byte [eax + 0x62], ah
inc eax
add byte [edx + 0x40], ah
add byte [eax + 0x62], ch
inc eax
add byte [edx + 0x40], bl
add byte [esi + ebx*2 + 0x5ed80040], bh
bound eax, qword [eax]
mov esp, 0xd800405e
pop esi
inc eax
add byte [edi + ebx*2], cl
inc eax
add byte [eax], dh
lcall 0x42, 0x9b700042
push esp
lcall 0x42, 0x9ba40042
invalid
add byte [edx + ebx*4 + 0x42], dl
add byte [ebx + ebx*4 - 0x640fffbe], ah
movsb byte es:[edi], byte [esi]
wait
inc edx
add al, dh
wait
inc edx
add al, bh
clc
wait
inc edx
add al, bh
xchg edx, eax
inc edx
add byte [eax - 0x65], ah
inc edx
add al, cl
lcall 0x42, 0x9ad00042
push esp
pushfd
inc edx
add al, ah
cdq
inc edx
add byte [eax], al
add byte [edx], al
add ah, al
jecxz 0x41e3dc
add byte [edx], cl
pop es
add cl, ch
jecxz 0x41e3e4
add byte [edx], cl
or al, byte [eax]
or al, 0
sbb dword [edx + eax*2 + 0x69], edx
inc ebp
outsb dx, byte [esi]
imul esp, dword fs:[ecx + 0x6e], 0x63696e55
outsd dx, dword [esi]
inc ebp
outsb dx, byte [esi]
arpl word [edi + 0x64], bp
imul ebp, dword [esi + 0x67], 0x9b600025
inc edx
add byte [0x6e6f6c43], al
add eax, dword gs:[eax]
inc eax
fld dword [ecx]
or byte [eax], al
add dword [eax], ecx
and ah, ah
inc ecx
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
add al, byte [eax]
add byte ss:[esp + ebx*4 + 0x42], dl
add byte [ebx], cl
inc edi
je 0x41e444
jb 0x41e45b
popal
insd dword es:[edi], dx
bound ebp, qword [ebp + 3]
add byte [eax], cl
xor al, byte [eax]
or byte [eax], al
add cl, byte [eax]
and ah, ah
inc ecx
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
inc eax
or byte [edx], dh
inc eax
add byte [ecx], al
add byte [ecx], al
add dword [edx], eax
add byte [edx], al
add byte [eax], al
and al, 0xe4
inc ecx
add byte [edi], al
sbb dword [edx + eax*2 + 0x69], edx
inc ebp
outsb dx, byte [esi]
imul esp, dword fs:[ecx + 0x6e], 0x63696e55
outsd dx, dword [esi]
inc ebp
outsb dx, byte [esi]
arpl word [edi + 0x64], bp
imul ebp, dword [esi + 0x67], 0x41e364
aam 0xe2
inc ecx
loop 0x41e487
add byte [eax], al
add byte [edi], cl
push ebx
jns 0x41e4c0
je 0x41e4b4
insd dword es:[edi], dx
push ebx
jns 0x41e4c7
push ebp
je 0x41e4c0
insb byte es:[edi], dx
jae 0x41e45a
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
push 0xf0041e4
add byte [eax], al
add al, byte [eax]
add byte [eax], al
add byte [eax], al
add byte [eax - 0x1c], ch
inc ecx
add byte [edi], cl
add eax, 0x6f725054
arpl ax, cx
inc eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edi], cl
push ebx
jns 0x41e4fb
jae 0x41e4fd
je 0x41e4ef
insd dword es:[edi], dx
insd dword es:[edi], dx
push ebx
jns 0x41e502
push ebp
je 0x41e4fb
insb byte es:[edi], dx
jae 0x41e496
add bh, bh
inc dword [edx]
add byte [ebx + 0x2405ffc0], cl
push 0xa75005b
mov eax, 0x5b6814
call fcn.00407c6c
ret
invalid
mov ebx, edx
mov edx, eax
shr edx, 0x10
div bx
mov ebx, dword [ebp + 8]
mov word [ecx], ax
mov word [ebx], dx
or byte [esi - 0x77], ah
add dword [esi - 0x77], esp
adc ebx, dword [ebx + 0x5d]
pop ebx
pop ebp
ret 4
push edi
xor ecx, ecx
mov dword [ebp - 0x428], ecx
mov dword [ebp - 0x42c], ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x41e612
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x218]
push eax
push 0x104
call sub.kernel32.dll_GetLogicalDriveStringsW
mov esi, eax
test esi, esi
jle 0x41e5ec
sti
invalid
dec dword [ecx + 0x5589fc4d]
push ebp
hlt
lea ebx, [ebp - 0x218]
lea eax, [ebx + 4]
mov word [eax], 0
push 0x104
lea eax, [ebp - 0x424]
push eax
push ebx
call sub.kernel32.dll_QueryDosDeviceW
mov esi, eax
test esi, esi
jle 0x41e5d5
lea eax, [ebp - 4]
lea edx, [ebp - 0x424]
mov ecx, 0x106
call fcn.004087a8
mov ecx, 1
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00408cd8
test eax, eax
jle 0x41e5d5
mov eax, dword [ebp - 4]
test eax, eax
je 0x41e589
sub eax, 4
mov eax, dword [eax]
mov esi, eax
mov edi, dword [ebp - 8]
test edi, edi
je 0x41e597
sub edi, 4
mov edi, dword [edi]
lea eax, [ebp - 0x428]
push eax
mov ecx, edi
sub ecx, esi
lea edx, [esi + 1]
mov eax, dword [ebp - 8]
call fcn.00408ac8
mov eax, dword [ebp - 0x428]
push eax
lea eax, [ebp - 0x42c]
mov edx, ebx
call fcn.0040876c
mov edx, dword [ebp - 0x42c]
mov eax, dword [ebp - 0xc]
pop ecx
call fcn.00408958
jmp 0x41e5ec
add ebx, 2
cmp word [ebx], 0
jne 0x41e5d2
add ebx, 4
test ebx, ebx
je 0x41e5e6
cmp word [ebx], 0
jne 0x41e536
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41e619
lea eax, [ebp - 0x42c]
mov edx, 2
call fcn.00407ccc
lea eax, [ebp - 4]
call fcn.00407c6c
ret