Function at 0x4648e1
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff90
call fcn.00401288
mov dword [0x4690b3], 0x10fe7
mov eax, esi
sub dword [0x469101], ebx
mov dword [0x469052], ebx
mov dword [esp - 0x20], ecx
sub dword [0x469101], edi
mov ecx, dword [0x46908b]
cmp word [0x4690aa], 0
jle 0x463ee3
mov byte [0x46904d], 0x7e
mov dword [0x4690a9], ebx
mov dword [esp - 0xc], ebx
mov dword [esp - 4], edx
mov dword [0x46901e], esi
mov word [0x469065], 0x3f1a
mov dword [0x469093], ebx
mov eax, esi
call fcn.00402374
and esi, dword [0x4690b5]
call fcn.004672fc
test al, al
jne 0x463f34
mov dword [0x46b3f4], 0xa872
xor eax, eax
jmp fcn.00463e98
mov dword [0x46903b], esi
test eax, eax
je 0x463f4d
mov dword [0x46903d], esi
dec ecx
mov dword [0x4690c6], ebx
jmp 0x463f63
mov dword [0x469057], edx
mov dword [0x469063], 0x1338f
mov dword [0x46902c], eax
call fcn.00466a74
mov dword [0x46b3f4], 1
mov dword [0x46b3c8], 0x6c6c642e
mov dword [0x46b3c4], 0x32336c65
mov dword [0x46b3c0], 0x6e72656b
mov dword [0x46905f], esi
add dword [0x4690cf], edi
mov dword [0x46902d], 0x11630
xor eax, eax
push 0x46b3c0
call sub.kernel32.dll_LoadLibraryA
xor ecx, dword [esp + 8]
mov dword [0x46b3ec], eax
mov dword [0x46903b], esi
test eax, eax
je 0x463fd4
mov dword [0x46903d], esi
dec ecx
mov dword [0x4690c6], ebx
jmp 0x463fea
mov dword [0x469057], edx
mov dword [0x469063], 0x1338f
mov dword [0x46902c], eax
call fcn.00466a74
cmp dword [0x46b3fc], 0
je 0x4646c8
mov word [0x469060], 0x1929
inc dword [0x4690fd]
mov edi, ecx
mov esp, ebp
pop ebp
ret
push ebp
mov ebp, esp
add esp, 0xffffff34
mov dword [0x469062], 0x14a5f
mov dword [0x469063], eax
mov dword [0x4690d3], ecx
call fcn.00465108
mov dword [0x46c038], 0x466688
cmp dword [0x46b3f4], 1
jne 0x46564c
call fcn.00466960
mov dword [0x4690b3], 0x10fe7
mov eax, esi
sub dword [0x469101], ebx
call fcn.00464a8c
dec dword [0x469082]
mov ebx, 0x5f
mov dword [0x46901c], edi
mov dword [0x46c034], 0x465200
call fcn.00464504
mov dword [0x46905f], esi
add dword [0x4690cf], edi
mov dword [0x46902d], 0x11630
call fcn.00466a0c
add dword [0x46c034], 8
mov word [0x469060], 0x1929
inc dword [0x4690fd]
mov edi, ecx
mov eax, dword [0x46c034]
cmp eax, dword [0x46c038]
je 0x464949
mov dword [0x4690fa], ebx
test ecx, ecx
je 0x464799
mov dword [0x469103], edx
mov dword [0x469109], eax
mov dword [0x469070], ecx
mov dword [0x46903a], 0x16f12
xchg dword [0x4690a8], edx
and dword [0x4690d6], edi
mov dword [0x46906a], esi
mov byte [0x469090], 0x64
mov dword [0x469073], edx
mov dword [0x4690a5], edx
cmp dword [ebp - 0x18], 0
jne 0x4647e1
mov word [0x4690e0], 0x4a07
xchg dword [esp - 0x24], ecx
mov eax, 0x197
mov dword [0x469041], edx
mov dword [0x469102], edi
mov dword [0x4690bd], ebx
mov byte [0x469070], 0x2e
xchg dword [0x4690ff], ecx
mov eax, 0x4649f8
mov dword [0x46c060], eax
mov eax, dword [0x46c060]
push eax
call sub.kernel32.dll_GetDriveTypeW_1
mov dword [0x4690fa], ebx
test ecx, ecx
je 0x464830
mov dword [0x469103], edx
mov dword [0x469109], eax
mov dword [0x469070], ecx
mov dword [0x46903a], 0x16f12
xchg dword [0x4690a8], edx
and dword [0x4690d6], edi
mov dword [0x46906a], esi
mov byte [0x469090], 0x64
mov dword [0x469073], edx
call fcn.00464dc0
mov byte [ebp - 1], 0
mov eax, 0x4649f8
mov dword [0x46c060], eax
mov eax, dword [0x46c060]
push eax
call sub.kernel32.dll_GetDriveTypeW_1
mov edx, 0x16c
mov dword [0x46909e], ecx
mov word [0x46908c], 0x5ff4
push esi
push ebx
call fcn.00402374
inc byte [ebp - 1]
cmp byte [ebp - 1], 2
jne 0x464868
push edi
push eax
call fcn.00465108
call fcn.00401a24
test al, al
jne 0x464938
mov byte [0x4690ec], 0xa0
mov dword [0x4690b2], 0x10bdd
mov esi, 0x121
push 0x4648e1
mov ecx, eax
cmp dword [0x46b400], 0
jne 0x466694
add ecx, eax
mov dword [0x4690fa], ebx
test ecx, ecx
je 0x4648f7
mov dword [0x469103], edx
mov dword [0x469109], eax
mov dword [0x469070], ecx
mov dword [0x46903a], 0x16f12
xchg dword [0x4690a8], edx
and dword [0x4690d6], edi
mov dword [0x46906a], esi
mov byte [0x469090], 0x64
mov dword [0x469073], edx
inc dword [0x46c034]
inc dword [0x46c008]
inc dword [0x46c028]
mov eax, dword [0x46c034]
cmp eax, dword [0x46c038]
jne 0x464783
dec dword [0x469082]
mov ebx, 0x5f
mov dword [0x46901c], edi
mov eax, dword [0x46c02c]
push 0x464975
mov edi, eax
cmp dword [0x46b404], 0
je 0x465b1c
mov dword [eax], edx
lea eax, [0x4694b4]
call fcn.00464a04
mov dword [0x46903b], esi
test eax, eax
je 0x464999
mov dword [0x46903d], esi
dec ecx
mov dword [0x4690c6], ebx
jmp 0x4649af
mov dword [0x469057], edx
mov dword [0x469063], 0x1338f
mov dword [0x46902c], eax
call fcn.00466a74
push dword [0x469008]
mov eax, dword [esp + 4]
push dword [0x46c030]
mov ecx, dword [esp + 8]
push 0
cmp dword [0x46b408], 0
jne 0x466200
mov dword [0x469062], 0x14a5f
mov dword [0x469063], eax
mov dword [0x4690d3], ecx
call fcn.00465108
mov esp, ebp
pop ebp
ret
xchg byte [edi - 0x24], ah
mov bl, 0x46
add byte [ecx + 0x61], ch
cmp eax, 0x469a2a41
sub al, 0xa5
add cl, byte [ecx - 0x23]
sbb dh, byte [esi]
je 0x46568e
mov dh, 0xd
sbb al, 0x6d
mov ebx, 0xfa5d76bf
test esp, ebp
nop
rol byte [esi], 0x7d
loop 0x4656c3
cmp byte fs:[ebx + 0x46c09063], 0
cmpsd dword [esi], dword es:[edi]
mov ss, word [ebp - 0x6f]
rol byte [esi], 0xf6
pop esp
mov ecx, dword [ecx + 0x46c090]
stosb byte es:[edi], al
pop esp
in eax, 0x94
rol byte [esi], 0xa
push ss
add eax, 0x91c57a5e
rol byte [esi], 0x98
xchg esi, eax
mov edx, dword [eax - 0x3cffb940]
adc byte [eax + eax*8 + 0x42f20046], 0x16
ret 0xe835
add byte [ebx], ch
in al, dx
xchg esp, eax
rol byte [esi], 0x82
enter 0xffffffffffff91f9, 0xffffffffffffffc0
inc esi
add byte [ebp + 0x28], dh
stc
cwde
xchg esp, eax
rol byte [esi], 0xf4
ret
out 0x99, al
out 0x59, eax
or byte [esi + 0x1e], 0xf4
mov bh, dh
adc al, 0x2b
pushal
nop
inc esi
add dh, ah
out 0x66, al
mov bh, ch
nop
inc esi
add al, dl
sbb ecx, dword [edi + 0x4c6a39a1]
xchg edx, eax
xor byte [ebp - 0x6f], ch
or eax, 0x46b4a4d4
add byte [esi + 0x28599227], bh
dec eax
sub al, 0x25
inc eax
add dh, dl
invalid
or cl, byte [esi + 0x38]
mov eax, 0x7186d4dd
sbb eax, 0x9035e2d9
inc esi
add dh, cl
sal dword [edx - 0x2161d7a6], cl
arpl word [0x4690e40d], bx
add dl, bh
sbb eax, 0x41c085aa
nop
inc esi
add byte [edx + 0x63da352], dl
mov esp, 0x465f
inc esi
invalid
push ebp
mov ebp, esp
add esp, 0xffffff68
mov word [0x469060], 0x1929
inc dword [0x4690fd]
mov edi, ecx
mov eax, dword [0x46c008]
xor edx, edx
div dword [0x46b428]
cmp edx, dword [0x46b42c]
jne 0x466715
mov dword [0x4690a5], edx
cmp dword [ebp - 0x18], 0
jne 0x4666dc
mov word [0x4690e0], 0x4a07
xchg dword [esp - 0x24], ecx
mov eax, 0x197
mov dword [0x469041], edx
mov dword [0x469102], edi
mov dword [0x4690bd], ebx
mov byte [0x469070], 0x2e
xchg dword [0x4690ff], ecx
xor eax, eax
mov al, byte [0x46c034]
add dword [0x46c008], eax
dec byte [0x46b420]
jmp 0x46673c
mov edx, 0x16c
mov dword [0x46909e], ecx
mov word [0x46908c], 0x5ff4
xor eax, eax
mov al, byte [0x46c034]
sub dword [0x46c008], eax
inc byte [0x46b420]
cmp byte [0x46b420], 7
jbe 0x46674c
mov byte [0x46b420], 0
mov word [0x469060], 0x1929
inc dword [0x4690fd]
mov edi, ecx
xor eax, eax
mov ebx, dword [0x46c034]
add ebx, eax
add eax, ebx
add eax, dword [esp + 4]
cmp dword [ebx], eax
jmp 0x466777
push edx
cmp edx, 0xf00ff
je 0x466786
mov dl, byte [0x46c008]
mov dl, dl
cmp edx, 0xe1c00
je 0x466792
xor byte [ebx], dl
inc edx
pop edx
mov eax, dword [0x46c034]
mov dl, byte [0x46c008]
add byte [eax], dl
xor eax, eax
mov al, byte [0x46b420]
mov al, byte [eax + 0x46b418]
mov byte [0x46b424], al
dec dword [0x469082]
mov ebx, 0x5f
mov dword [0x46901c], edi
pop ebx
push ebx
push dword [0x46c034]
call fcn.004667d1