Function at 0x4257a8
Capabilities:
Get disk information

Disassembly:
inc ecx
jb 0x42528d
xor al, byte [edx]
add byte [edx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
xor al, 0x52
inc edx
add byte [edi], cl
adc eax, 0x72614d54
jae 0x4252a4
popal
insb byte es:[edi], dx
insb byte es:[edi], dx
jb 0x425270
dec ecx
inc esp
imul esi, dword [ebx + 0x70], 0x7265736f
enter 0x4026, 0
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 0x4252d7
je 0x4252cb
insd dword es:[edi], dx
push ebx
jns 0x4252de
push ebp
je 0x4252d7
insb byte es:[edi], dx
jae 0x425274
add eax, dword [eax]
invalid
add bh, bh
inc dword [edx]
add byte [eax], al
add ah, cl
add eax, 0xffffffac
jmp 0x437da4
add al, byte [eax]
add byte [eax], al
int3
jecxz 0x4252ba
add dword [eax], eax
add dword [esp + 4], 0xffffffac
jmp fcn.00410524
inc dword [ebx - 0x53fbdbbc]
jmp fcn.00410568
inc edx
add byte [ecx + 0x52], bh
inc edx
add byte [ecx - 0x76ffbdae], al
push edx
inc edx
add byte [ecx], 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 [eax], al
add byte [eax], al
add byte [eax + 0x54004252], dh
add byte [eax], al
inc edx
add byte [eax + eax], dl
add byte [eax], al
add byte [eax], al
add byte [eax], dh
push edx
inc edx
add byte [ebx + edx*2 + 0x42], al
add al, cl
push edx
inc edx
add byte [eax], al
add byte [eax], al
add byte [ebx + edx*2 + 0x42], al
add al, ch
push ebx
inc edx
add byte [edi + 0x53], dl
inc edx
add byte [ecx + 0x4253], bl
add byte [eax], al
add byte [edi + 0x5c004253], ah
add byte [eax], al
add byte [edi - 0x78fbffc0], dh
inc eax
add byte [edi + eax*4], cl
inc eax
add byte [edx + ecx*4], cl
inc eax
add byte [edx + ecx*4], al
inc eax
add ah, dh
add al, 0x41
add byte [eax], al
add eax, 0x8a2c0041
inc eax
add byte [eax], ah
mov al, byte [eax]
adc al, 5
inc ecx
add ah, ch
test byte [eax], al
dec eax
jle 0x425386
add byte [esi], cl
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax + 0x57], dl
inc edx
add byte [eax + eax], cl
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add eax, dword [eax]
add byte [eax], al
add byte [eax], al
add byte [eax + eax], cl
add byte [eax], al
pop es
inc esi
dec ecx
outsb dx, byte [esi]
insb byte es:[edi], dx
imul ebp, dword [esi + 0x65], 0x50000002
push edi
inc edx
add byte [eax + eax], cl
add byte [ecx], cl
inc esi
dec edi
jbe 0x4253e5
jb 0x4253e8
insb byte es:[edi], dx
outsd dx, dword [esi]
ja 0x425388
add byte [eax], al
pushfd
adc byte [eax], al
push eax
add byte [eax], al
add byte [esi], al
inc esi
inc ebx
outsd dx, dword [esi]
jne 0x425404
je 0x42539a
add byte [eax], al
add byte [ecx], al
add byte [ebp + 0x4d004253], bh
add bh, bh
inc dword [eax]
add byte [0x72614d54], dl
jae 0x425416
popal
insb byte es:[edi], dx
insb byte es:[edi], dx
jb 0x4253e2
push esp
inc esp
imul esi, dword [ebx + 0x70], 0x7265736f
daa
add byte [eax + 0x7e], cl
inc ebx
add byte [edi], al
inc esp
jae 0x42543c
jb 0x425439
jns 0x4253cf
add byte [eax], al
add byte [eax], al
add byte [eax], cl
add byte [ecx], al
or ah, ah
push ebx
add byte [eax], al
or byte [eax], al
add dword [eax], ecx
in al, 0x53
inc edx
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
add al, byte [eax]
call 0x742963c
push ebx
inc edx
add byte [edi], al
pop es
adc eax, 0x72614d54
jae 0x425458
popal
insb byte es:[edi], dx
insb byte es:[edi], dx
jb 0x425424
push esp
inc esp
imul esi, dword [ebx + 0x70], 0x7265736f
inc esp
push ebx
inc edx
add al, dh
sub byte [eax], al
add byte [eax], al
rcpps xmm7, xmmword [ecx + 0x73]
je 0x425474
insd dword es:[edi], dx
push ebx
jns 0x425487
push ebp
je 0x425480
imul ebp, dword [ebx + esi*2], 0x2000000
insb byte es:[edi], dx
jae 0x42541a
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
sub byte [edx + eax*2], dl
push cs
or edx, dword [ebp + ecx*2 + 0x61]
jb 0x4254a2
push 0x656c6c61
jb 0x42543a
add byte [eax], al
add byte [ecx], al
add dword [eax], eax
add byte [eax], al
xor byte [edx + 0x42], dl
add byte [eax], al
add byte [eax], dh
push edx
inc edx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add dword [eax], eax
add byte [eax], al
xor byte [edx + 0x42], dl
add byte [eax], al
add byte [eax], al
add byte [eax], al
or dword [esi + 0x44], eax
imul esi, dword [ebx + 0x70], 0x7265736f
add al, byte [eax]
add al, byte [eax]
adc eax, dword [eax]
or byte [esp + edi*2], dl
jo 0x4254c9
jae 0x4254c1
jb 0x425460
add byte [edx], al
add byte [ebx], dl
add byte [eax], cl
adc al, 0x7c
inc ebx
add byte [eax], cl
dec ecx
outsb dx, byte [esi]
push ebx
je 0x4254e0
imul ebp, dword [esi + 0x67], 0x32640000
inc eax
add byte [edx], al
or byte [eax + esi], dl
xor al, byte [eax]
add cl, byte [eax]
adc al, 0x30
inc edx
add byte [edx], al
push ebx
inc edx
add al, byte [eax]
add byte [eax + edx + 0x4d060040], bl
push es
dec ebp
popal
js 0x4254d8
outsb dx, byte gs:[esi]
add al, byte [eax]
add al, byte [eax]
or byte [esp + edi*2 + 0x43], bl
add byte [ecx], cl
dec edi
jne 0x42550f
push ebx
je 0x425510
imul ebp, dword [esi + 0x67], 0x32640000
inc eax
add byte [edx + esi + 0x40], ah
add byte [ecx], al
add al, byte [eax + 0x1004012]
push ebx
add al, byte [eax]
add al, byte [eax]
or byte [eax + 0x7b], dl
inc ebx
add byte [ebx], cl
dec ecx
outsb dx, byte [esi]
dec edi
jne 0x425532
push ebx
je 0x425533
imul ebp, dword [esi + 0x67], 0x32640000
inc eax
add byte [edx], al
or byte [eax + esi], dl
inc edx
add byte [edx], al
push ebx
inc edx
add al, byte [eax]
add byte [eax + edx + 0x4d060040], bl
inc eax
add byte [esi], al
dec ebp
popal
js 0x42552b
outsb dx, byte gs:[esi]
outsb dx, byte [esi]
add al, byte [eax]
add al, byte [eax]
or byte [eax + 0x600437a], bl
inc ecx
jae 0x42552f
outsb dx, byte [esi]
jae 0x42555a
add byte [eax], al
xor al, byte fs:[eax]
add dword [edx], eax
adc byte [edx], 0x40
add byte [ecx], al
push ebx
add al, byte [eax]
add al, byte [eax]
or byte [eax + 0x7a], al
inc ebx
add byte [esi], al
inc ecx
jae 0x42554d
outsb dx, byte [esi]
jae 0x425578
add byte [eax], al
xor al, byte fs:[eax]
add dword [eax], eax
fcom dword [ecx]
inc eax
add byte [ecx], al
push ebx
add al, byte [eax]
add al, byte [eax]
or byte [eax + 0x6004379], ah
add byte [edx + esi + 0x40], ah
add byte [ecx], al
add al, bl
adc dword [eax], eax
add dword [ebx + 2], edx
add byte [edx], al
add byte [eax], cl
mov al, byte [0x6004379]
inc ecx
jae 0x42556b
outsb dx, byte [esi]
jae 0x425596
add byte [eax], al
xor al, byte fs:[eax]
add byte [edx], al
add al, byte [eax + 0x1004012]
add al, byte [edx]
adc byte [edx], 0x40
add byte [ecx], al
push ebx
add al, byte [eax]
add ah, cl
adc byte [eax], al
or byte [ebx + 0x6f], al
push eax
popal
add al, byte gs:[bx + si]
add al, byte [eax]
or byte [eax], al
jp 0x425596
add byte [esi], al
inc ecx
jae 0x425599
outsb dx, byte [esi]
jae 0x4255c4
imul eax, dword [eax], 0x40326400
add byte [edx], al
add al, bl
adc dword [eax], eax
add dword [ebx + 2], edx
add byte [eax], al
int3
add byte [eax], al
xor al, byte fs:[eax]
add al, byte [eax]
fcom dword [ecx]
inc eax
add byte [ecx], al
push ebx
add al, byte [eax]
add ah, cl
adc byte [eax], al
or byte [ebx + 0x6f], al
push eax
popal
add al, byte gs:[bx + si]
add al, byte gs:[eax]
add al, byte [eax]
or al, ah
jns 0x4255c4
add byte [esi], al
inc ecx
jae 0x4255db
je 0x4255ee
cmp byte [eax], al
add byte [edx + esi + 0x40], ah
add byte [ecx], al
add al, byte [eax + 0x1004012]
push ebx
add al, byte [eax]
add al, byte [eax]
or byte [eax + 0x7a], bh
inc ebx
add byte [esi], al
inc ecx
jae 0x4255f9
je 0x42560c
cmp byte [eax], al
add byte [edx + esi + 0x40], ah
add byte [ecx], al
add al, bl
adc dword [eax], eax
add dword [ebx + 2], edx
add byte [edx], al
add byte [eax], cl
aam 0x7c
inc ebx
add byte [0x61527341], al
ja 0x4255c5
add byte [eax], al
xor al, byte fs:[eax]
add dword [edx], eax
sub byte [eax + eax*2], cl
add dword [edx + 2], eax
add byte [edx], al
add byte [eax], cl
inc eax
jnp 0x42561d
add byte [edx + esi + 0x40], ah
add byte [ecx], al
add ch, byte [eax]
dec esp
inc eax
add byte [ecx], al
inc edx
add al, byte [eax]
add al, byte [eax]
or byte [eax + 0x7b], al
inc ebx
add byte [0x73756c46], al
add eax, 0x73756c46
push 0
add byte [eax], al
add byte [edx], al
add byte [eax], cl
cwde
js 0x425631
add byte [eax], cl
inc ecx
insb byte es:[edi], dx
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [ebp + 0x65], cx
insd dword es:[edi], dx
add byte [eax], al
xor al, byte fs:[eax]
add dword [eax], eax
pushfd
adc byte [eax], al
add al, 0x53
add byte [edx + esi + 0x40], ah
add byte [ecx], al
add byte [eax + edx + 0x53040040], bl
imul edi, dword [edx + 0x65], 0x20002
or byte [edi*2 + 0x520a0043], dh
add byte [eax], cl
xor al, 0x7d
inc ebx
add byte [edx], cl
push edx
popal
insb byte es:[edi], dx
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [ebp + 0x65], cx
insd dword es:[edi], dx
add byte [eax], al
xor al, byte fs:[eax]
add al, byte [eax]
xor al, byte fs:[eax]
push es
dec edi
insb byte es:[edi], dx
push eax
je 0x4256a2
add al, byte [eax]
add byte [eax + edx + 0x4e070040], bl
add byte [eax], al
pushfd
adc byte [eax], al
pop es
dec esi
ja 0x42568f
imul edi, dword [edx + 0x65], 0x20002
or al, dl
jp 0x42568a
add byte [ecx], cl
inc esi
imul edi, dword [eax + 0x53], 0x6e697274
add byte [bx + si], al
xor al, byte fs:[eax]
add dword [ecx], eax
adc byte [edx], 0x40
add byte [ebx], al
push ebx
je 0x4256d4
add al, byte [eax]
add al, byte [eax]
or byte [eax], cl
jnp 0x4256ad
add byte [edi], cl
push ebp
outsb dx, byte [esi]
jae 0x4256d1
inc si
imul edi, dword [eax + 0x53], 0x6e697274
add byte [bx + si], al
xor al, byte fs:[eax]
add dword [edx], eax
adc byte [edx], 0x40
add byte [ebx], al
push ebx
je 0x4256fd
jb 0x42568e
add al, byte [eax]
add al, byte [eax]
add byte [edx], al
add byte [eax], cl
sar byte [eax + 0x43], 1
or al, dl
js 0x4256d6
add byte [ecx], dl
inc ecx
insb byte es:[edi], dx
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [ebx + 0x74], dx
jb 0x425707
outsb dx, byte [esi]
inc ecx
jae 0x4256e4
inc ecx
outsb dx, byte [esi]
jae 0x42570f
add byte [eax], al
xor al, byte fs:[eax]
add dword [edx], eax
adc byte [edx], 0x40
add byte [ebx], al
add al, byte [eax + 0x3004012]
push ebx
je 0x425728
add al, byte [eax]
add al, byte [eax]
or byte [eax], ch
jns 0x425701
add byte [ecx], dl
inc ecx
insb byte es:[edi], dx
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [ebx + 0x74], dx
jb 0x425732
outsb dx, byte [esi]
inc ecx
jae 0x42570f
outsb dx, byte [esi]
jae 0x42573a
add byte [eax], al
xor al, byte fs:[eax]
xor al, byte [eax]
add byte [edx], al
add al, byte [eax + 0x3004012]
add al, byte [edx]
adc byte [edx], 0x40
add byte [ebx], al
push ebx
je 0x425753
add al, byte [eax]
add ah, cl
adc byte [eax], al
or byte [ebx + 0x6f], al
push eax
popal
add al, byte gs:[bx + si]
add al, byte [eax]
or byte [eax], cl
jns 0x42573c
int3
add byte [ecx], dl
inc ecx
insb byte es:[edi], dx
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [ebx + 0x74], dx
jb 0x42576d
je 0x425775
imul ebp, dword [esi + 0x67], 0x74557341
cmp byte [eax], al
outsb dx, byte [esi]
inc ecx
jae 0x42575e
je 0x425771
cmp byte [eax], al
add byte [edx + esi + 0x40], ah
add byte [ecx], al
add al, byte [eax + 0x3004012]
xor al, byte [eax]
add dword [edx], eax
adc byte [edx], 0x40
add byte [ebx], al
push ebx
je 0x42578e
add al, byte [eax]
add al, byte [eax]
or byte [eax + 0x79], ch
inc ebx
add byte [ecx + eax*2], dl
insb byte es:[edi], dx
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [ebx + 0x74], dx
jb 0x425798
outsb dx, byte [esi]
inc ecx
jae 0x425789
outsb dx, byte [esi]
imul esp, dword [ebx + 0x6f], 0x6564
add byte [eax], al
xor al, byte fs:[eax]
add dword [edx], eax
adc byte [edx], 0x40
add byte [ebx], al
push ebx
je 0x4257bc
add al, byte [eax]
add al, byte [eax]
add byte [eax], al
push esp
push edi
inc edx
add byte [ecx], dl
das
push esp
inc ecx
jb 0x4257cc
popal
jns 0x425799
push ebx
jns 0x4257d3
je 0x4257c7
insd dword es:[edi], dx
push ebx
jns 0x4257da
push ebp
je 0x4257d3
insb byte es:[edi], dx
jae 0x42579b
push esp
dec ebp
popal
jb 0x4257e5
jae 0x4257db
push 0x656c6c61
jb 0x4257a7
popal
insb byte es:[edi], dx
insb byte es:[edi], dx
jb 0x4257a7
push esp
inc esp
imul esi, dword [ebx + 0x70], 0x5265736f
arpl word gs:[esi], di
adc byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
invalid
jae 0x42580e
je 0x425800
insd dword es:[edi], dx
insd dword es:[edi], dx
rcl byte [ecx + 0x42], 0
add al, byte [eax]
add byte [eax], al
test al, 0x57
inc edx
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 0x42583b
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
rcpps xmm7, xmmword [ecx + 0x73]
jae 0x42583d
je 0x42582f
insd dword es:[edi], dx
insd dword es:[edi], dx
push ebx
push ebx
jns 0x425842
push ebp
je 0x42583b
insb byte es:[edi], dx
jae 0x4257d6
add bh, bh
inc dword [edx]
add byte [ebx - 0x23fa0040], cl
mul dword [ebx]
invalid
mov eax, eax
inc dword [0x63f7dc]
sar bh, 5
fdivr st(7), st(0)
arpl word [eax], ax
jne 0x4257ee
mov eax, 0x63f7cc
call fcn.0040a480
int3
ret
or byte [esi - 0x77], ah
add dword [esi - 0x77], esp
adc ebx, dword [ebx + 0x5d]
ret 4
in al, dx
push ecx
mov dword [ebp - 4], eax
push dword [ebp + 4]
mov ecx, dword [ebp - 4]
mov dl, 1
mov eax, dword [0x4203e8]
call fcn.0042e954
jmp fcn.00409aa8
add byte [ebp - 0x75], dl
in al, dx
add esp, 0xfffffbd4
push ebx
push esi
push edi
xor ecx, ecx
leave
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 0x425985
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 0x42595d
invalid
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 0x425946
lea eax, [ebp - 4]
lea edx, [ebp - 0x424]
mov ecx, 0x106
call fcn.0040b048
mov eax, dword [ebp - 4]
test eax, eax
je 0x4258c3
mov eax, dword [eax - 4]
mov esi, eax
mov ecx, 1
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0040b4c0
dec eax
jne 0x425946
lea edx, [esi + 1]
mov eax, dword [ebp - 8]
call fcn.00430474
test al, al
je 0x4258eb
mov al, 1
jmp 0x4258fa
mov eax, dword [ebp - 8]
test eax, eax
je 0x4258f5
mov eax, dword [eax - 4]
cmp eax, esi
sete al
test al, al
je 0x425946
mov edi, dword [ebp - 8]
test edi, edi
je 0x425908
mov edi, dword [edi - 4]
lea eax, [ebp - 0x428]
push eax
mov ecx, edi
sub ecx, esi
lea edx, [esi + 1]
mov eax, dword [ebp - 8]
call fcn.0040b36c
mov eax, dword [ebp - 0x428]
push eax
lea eax, [ebp - 0x42c]
mov edx, ebx
call fcn.0040aff4
mov edx, dword [ebp - 0x42c]
mov eax, dword [ebp - 0xc]
pop ecx
call fcn.0040b1fc
jmp 0x42595d
add ebx, 2
cmp word [ebx], 0
jne 0x425943
add ebx, 4
test ebx, ebx
je 0x425957
cmp word [ebx], 0
jne 0x425882
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x42598c
lea eax, [ebp - 0x42c]
mov edx, 2
call fcn.0040a4e0
lea eax, [ebp - 4]
call fcn.0040a480
pop eax
jmp eax
push ebx
push esi
push edi
add esp, 0xfffffff0
mov esi, edx
lea edi, [esp]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ebx, eax
mov eax, dword [ebx + 0x50]
cmp eax, 4
jge 0x437dcb
add eax, eax
lea edi, [ebx + eax*8 + 0xc]
mov esi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x437e3e
mov esi, eax
sub esi, 4
mov eax, dword [ebx + 0x4c]
test eax, eax
je 0x437dda
mov eax, dword [eax - 4]
cmp eax, esi
jne 0x437e2e
mov eax, dword [ebx + 0x4c]
test eax, eax
je 0x437de8
mov eax, dword [eax - 4]
cmp eax, 4
jge 0x437e07
push 4
lea eax, [ebx + 0x4c]
mov ecx, 1
mov edx, dword [0x425750]
call fcn.0040d4b4
add esp, 4
jmp 0x437e2e
mov eax, dword [ebx + 0x4c]
mov edi, eax
test edi, edi
je 0x437e13
mov edi, dword [edi - 4]
mov eax, edi
add eax, eax
push eax
lea eax, [ebx + 0x4c]
mov ecx, 1
mov edx, dword [0x425750]
call fcn.0040d4b4
add esp, 4
mov eax, esi
add eax, eax
mov edx, dword [ebx + 0x4c]
lea edi, [edx + eax*8]
mov esi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
inc dword [ebx + 0x50]
add esp, 0x10
pop edi
pop esi
pop ebx
ret