Function at 0x69ada0
Capabilities:
Get disk information

Disassembly:
sub esp, 0x180
push ebx
push ebp
push esi
push edi
xor edi, edi
mov byte [esp + 0x24], 0x12
mov byte [esp + 0x25], 0
mov byte [esp + 0x26], 0
mov byte [esp + 0x27], 0
mov byte [esp + 0x28], 0x28
mov byte [esp + 0x29], 0
mov dword [esp + 0x10], edi
call dword [0x7e06d0]
xor ecx, ecx
mov byte [esp + 0x1f], al
mov cl, ah
cmp cl, 1
je 0x69adf1
pop edi
pop esi
pop ebp
mov eax, 0x80000a04
pop ebx
add esp, 0x180
ret
test al, al
mov byte [esp + 0x18], 0
jbe 0x69b043
mov ebp, dword [esp + 0x18]
push 0
lea edx, [esp + 0x5c]
push ebp
push edx
call fcn.0069abf0
lea eax, [esp + 0x64]
push eax
call dword [0x7e06d4]
mov esi, eax
mov al, byte [esp + 0x69]
add esp, 0x10
test al, al
jne 0x69ae37
push 1
call dword [sym.imp.kernel32.dll_Sleep]
mov al, byte [esp + 0x59]
test al, al
je 0x69ae27
cmp esi, 1
jne 0x69b027
mov edx, dword [esp + 0x194]
mov ecx, edi
shl ecx, 5
xor ebx, ebx
sub ecx, edi
mov dword [esp + 0x14], ebx
lea esi, [edx + ecx*4 + 0xc]
push ebx
lea eax, [esp + 0x34]
push ebp
push eax
call fcn.0069ac10
lea ecx, [esp + 0x3c]
push ecx
call dword [0x7e06d4]
mov edi, eax
mov al, byte [esp + 0x41]
add esp, 0x10
test al, al
jne 0x69ae8c
push 1
call dword [sym.imp.kernel32.dll_Sleep]
mov al, byte [esp + 0x31]
test al, al
je 0x69ae7c
cmp edi, 1
jne 0x69b008
and ebp, 0xff
xor eax, eax
mov ecx, 0x19
lea edi, [esp + 0x94]
shl ebp, 0x10
push eax
lea edx, [esp + 0x98]
rep stosd dword es:[edi], eax
push 0x28
or ebp, ebx
push edx
lea eax, [esp + 0x30]
push 6
lea ecx, [esp + 0x124]
shl ebp, 8
push eax
push ecx
mov dword [esp + 0x12c], ebp
call fcn.0069a9a0
mov al, byte [0x7e0681]
add esp, 0x18
cmp al, 1
jne 0x69aff5
mov al, byte [esp + 0x94]
cmp al, 0x15
je 0x69af00
cmp al, 5
je 0x69af00
cmp al, 4
jne 0x69aff5
mov dword [esi - 4], 1
mov dword [esi], 0
mov ecx, 8
xor eax, eax
lea edi, [esi + 4]
mov dword [esi - 8], 0
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x62]
lea edx, [esi - 0xc]
lea eax, [esi + 0x24]
push edx
mov dword [edx], ebp
mov dword [eax], ecx
mov ecx, dword [esp + 0x6a]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x6e]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x72]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x76]
lea eax, [esi + 0x34]
mov dword [esi + 0x34], ecx
mov ecx, dword [esp + 0x7a]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x7e]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x82]
mov dword [eax + 0xc], ecx
lea ecx, [esi + 0x44]
mov edi, ecx
xor eax, eax
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
lea eax, [esi + 0x54]
mov ebx, eax
xor edi, edi
mov dword [ebx], edi
mov dword [ebx + 4], edi
mov dword [ebx + 8], edi
mov dword [ebx + 0xc], edi
mov dword [ebx + 0x10], edi
lea edi, [esi + 0x68]
mov ebp, edi
xor ebx, ebx
mov dword [ebp], ebx
mov dword [ebp + 4], ebx
mov ebx, dword [esp + 0xa0]
mov dword [ecx], ebx
mov ebx, dword [esp + 0xa4]
mov dword [ecx + 4], ebx
mov ecx, dword [esp + 0xa8]
mov dword [eax], ecx
mov ecx, dword [esp + 0xac]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0xb0]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0xb4]
mov dword [eax + 0xc], ecx
mov eax, dword [esp + 0xb8]
mov dword [edi], eax
call fcn.0069b220
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
add esp, 4
inc ecx
mov dword [esp + 0x10], ecx
add esi, 0x7c
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x198]
cmp ecx, eax
jge 0x69b03f
mov ebp, dword [esp + 0x18]
inc ebx
cmp ebx, 7
mov dword [esp + 0x14], ebx
jl 0x69ae58
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x198]
cmp edx, eax
mov edi, edx
jge 0x69b043
mov al, byte [esp + 0x18]
mov cl, byte [esp + 0x1f]
inc al
cmp al, cl
mov byte [esp + 0x18], al
jb 0x69adfe
jmp 0x69b043
mov edi, dword [esp + 0x10]
xor eax, eax
test edi, edi
jle 0x69b20f
mov esi, dword [esp + 0x194]
lea ecx, [esi + 0x10]
mov dword [esp + 0x18], ecx
cmp byte [ecx], 0x3f
je 0x69b075
inc eax
add ecx, 0x7c
cmp eax, edi
jl 0x69b05b
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x180
ret
mov eax, dword [0x7d5c3c]
test eax, eax
je 0x69b127
call dword [0x7e0670]
test eax, eax
jge 0x69b09c
pop edi
pop esi
pop ebp
mov eax, 0x80000b00
pop ebx
add esp, 0x180
ret
lea eax, [esp + 0xf8]
push eax
call dword [0x7e066c]
add esp, 4
xor eax, eax
mov byte [esp + eax + 0x3c], al
inc eax
cmp eax, 0x1a
jl 0x69b0af
lea ecx, [esp + 0x3c]
push ecx
call dword [0x7e0668]
add esp, 4
add esi, 0x11
mov ebx, edi
lea edx, [esp + 0x2c]
lea eax, [esi - 0x11]
push edx
push eax
call fcn.0069aca0
add esp, 8
test eax, eax
jne 0x69b10a
mov cl, byte [esp + 0x2c]
cmp byte [esp + eax + 0x3c], cl
je 0x69b0f3
inc eax
cmp eax, 0x1a
jl 0x69b0e5
jmp 0x69b10a
add al, 0x41
mov ecx, 7
mov byte [esi - 1], al
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, dword [esp + 0x10]
add esi, 0x7c
dec ebx
jne 0x69b0cc
lea ecx, [esp + 0xf8]
push ecx
call dword [0x7e0668]
add esp, 4
call dword [0x7e0674]
mov ebp, 0x41
lea edx, [esp + 0x3c]
xor ebx, ebx
sub ebp, edx
mov dword [esp + 0x14], ebp
jmp 0x69b13e
mov ebp, dword [esp + 0x14]
mov al, bl
lea esi, [esp + ebx + 0x3c]
lea ecx, [esp + 0x20]
add al, 0x41
push ecx
mov byte [esi], 0
mov byte [esp + 0x24], al
mov byte [esp + 0x25], 0x3a
mov byte [esp + 0x26], 0x5c
mov byte [esp + 0x27], 0
call dword [sym.imp.kernel32.dll_GetDriveTypeA]
cmp eax, 5
jne 0x69b18d
mov ecx, dword [esp + 0x18]
xor eax, eax
mov byte [esi], 1
add ebp, esi
xor edx, edx
mov dl, byte [ecx]
cmp edx, ebp
je 0x69b189
inc eax
add ecx, 0x7c
cmp eax, edi
jl 0x69b177
jmp 0x69b18d
add al, 0x80
mov byte [esi], al
inc ebx
cmp ebx, 0x1a
jl 0x69b13a
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x14], 0
cmp byte [ebp], 0x3f
jne 0x69b1ff
mov al, byte [ebp + 1]
lea ebx, [ebp + 1]
test al, al
mov edi, 1
je 0x69b1fb
mov esi, ebx
xor eax, eax
mov al, byte [esi]
cmp byte [esp + eax - 5], 1
jne 0x69b1c5
inc edi
inc esi
jmp 0x69b1da
mov ecx, 0x1f
lea edx, [esi + 1]
sub ecx, edi
push ecx
push edx
push esi
call fcn.006d7930
add esp, 0xc
cmp byte [esi], 0
jne 0x69b1b6
cmp edi, 2
jne 0x69b1fb
mov cl, byte [esp + 0x14]
mov al, byte [ebx]
add cl, 0x80
xor edx, edx
mov dl, al
mov byte [ebp], al
mov byte [ebx], 0
mov byte [esp + edx - 5], cl
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
add ebp, 0x7c
inc eax
cmp eax, edi
mov dword [esp + 0x14], eax
jl 0x69b19f
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x180
ret