Function at 0x82e970
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x10
push 0
push 0
dec ecx
jne 0x82e978
push ecx
push ebx
push esi
push edi
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], eax
xor eax, eax
push ebp
push 0x82eede
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x14]
call fcn.0040b054
xor edx, edx
push ebp
push 0x82ec3d
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 0x2c]
xor eax, eax
call fcn.00407a08
mov eax, dword [ebp - 0x2c]
lea edx, [ebp - 8]
call fcn.00432254
lea eax, [ebp - 0x30]
push eax
mov ecx, 1
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.0040c300
mov eax, dword [ebp - 0x30]
mov edx, 0x82eef8
call fcn.0040c2c8
jne 0x82e9f6
lea eax, [ebp - 8]
mov edx, 0x82ef08
call fcn.0040b48c
jmp 0x82ea0c
lea eax, [ebp - 8]
push eax
mov ecx, 1
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.0040c300
xor eax, eax
push ebp
push 0x82ea32
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0xc]
mov eax, dword [ebp - 8]
movzx eax, word [eax]
call fcn.007cc2a4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x82ea44
mov eax, dword [ebp - 0x10]
cmp eax, 4
ja case.default.0x82ea50
jmp dword [eax*4 + 0x82ea57]
xor ebx, ebx
mov edx, dword [ebp - 0xc]
mov eax, 0x82ef18
call fcn.00612c18
test al, al
je 0x82ea80
mov bl, 1
lea eax, [ebp - 0x34]
push eax
mov dl, 0x5c
mov eax, dword [ebp - 0xc]
call fcn.00612c90
mov edx, eax
mov cl, 0x5c
mov eax, dword [ebp - 0xc]
call fcn.00612cd0
mov edx, dword [ebp - 0x34]
lea eax, [ebp - 0xc]
call fcn.0040b48c
lea eax, [ebp - 0x38]
push eax
mov cl, 0x26
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.00612cd0
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 8]
call fcn.004304b0
test bl, bl
jne 0x82eafd
xor eax, eax
push ebp
push 0x82eaeb
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 8]
mov ax, 0x43
call fcn.007cc2a4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x82eafd
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 8]
call fcn.0040b444
jmp case.default.0x82ea50
mov eax, dword [ebp - 0x14]
call fcn.0082de68
jmp case.default.0x82ea50
xor edx, edx
push ebp
push 0x82ebbb
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 0xc]
mov ax, 0x43
call fcn.007cc2a4
lea eax, [ebp - 8]
push eax
mov dl, 0x5c
mov eax, dword [ebp - 0xc]
call fcn.00612c90
mov edx, eax
mov cl, 0x5c
mov eax, dword [ebp - 0xc]
call fcn.00612cd0
lea eax, [ebp - 0x40]
push eax
mov cl, 0x26
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.00612cd0
mov eax, dword [ebp - 0x40]
lea edx, [ebp - 0x3c]
call fcn.004304b0
mov edx, dword [ebp - 0x3c]
lea eax, [ebp - 8]
call fcn.0040b48c
mov eax, dword [ebp - 8]
test eax, eax
je 0x82eb81
mov eax, dword [eax - 4]
dec eax
jne 0x82ebb1
lea eax, [ebp - 4]
push eax
mov dl, 0x5c
mov eax, dword [ebp - 0xc]
call fcn.00612c90
mov edx, eax
mov cl, 0x5c
mov eax, dword [ebp - 0xc]
call fcn.00612cd0
lea eax, [ebp - 8]
push eax
mov cl, 0x26
mov edx, 2
mov eax, dword [ebp - 4]
call fcn.00612cd0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x82ebcd
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 8]
call fcn.0040b444
jmp case.default.0x82ea50
mov dl, 1
mov eax, dword [0x48d228]
call fcn.004ba0e0
mov ebx, eax
mov eax, dword [ebp - 0x14]
call fcn.0082e728
mov edx, ebx
xor eax, eax
call fcn.0082e6b4
test eax, eax
jle 0x82ec22
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x82ec22
lea ecx, [ebp - 0x44]
xor edx, edx
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0xc]
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x14]
call fcn.0040c0d8
mov eax, dword [ebp - 0x14]
mov eax, ebx
call fcn.00409258
jmp case.default.0x82ea50
mov eax, dword [ebp - 0x14]
call fcn.0040b054
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x82ec47
mov eax, dword [ebp - 0x14]
cmp dword [eax], 0
je 0x82ecf6
lea edx, [ebp - 0x58]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
call fcn.007273c4
lea eax, [ebp - 0x58]
lea edx, [ebp - 0x48]
call fcn.00727348
mov edx, dword [ebp - 0x48]
lea eax, [ebp - 8]
mov ecx, 0x82ef34
call fcn.0040c130
lea eax, [ebp - 0x5c]
push eax
mov ecx, 4
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.0040c300
push dword [ebp - 0x5c]
push 0x82ef4c
lea eax, [ebp - 0x60]
push eax
mov ecx, 4
mov edx, 8
mov eax, dword [ebp - 8]
call fcn.0040c300
push dword [ebp - 0x60]
push 0x82ef4c
lea eax, [ebp - 0x64]
push eax
mov ecx, 4
mov edx, 0xb
mov eax, dword [ebp - 8]
call fcn.0040c300
push dword [ebp - 0x64]
mov eax, dword [ebp - 0x14]
mov edx, 5
call fcn.0040c1b8
push 0
mov eax, dword [ebp - 0x14]
mov ecx, 0x82ef5c
mov edx, 0x82ef6c
call fcn.006124ec
jmp 0x82eea4
mov byte [ebp - 0x25], 0x43
lea eax, [ebp - 0x68]
movzx edx, byte [ebp - 0x25]
call fcn.0040bedc
lea eax, [ebp - 0x68]
mov edx, 0x82ef7c
call fcn.0040c0d8
mov eax, dword [ebp - 0x68]
call fcn.0040becc
push eax
call sub.kernel32.dll_GetDriveTypeW
cmp eax, 3
jne 0x82ede7
push 1
call sub.kernel32.dll_SetErrorMode
mov dword [ebp - 0x24], eax
xor eax, eax
push ebp
push 0x82ede0
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push 0
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x18]
push eax
push 0
push 0
lea eax, [ebp - 0x6c]
movzx edx, byte [ebp - 0x25]
call fcn.0040bedc
lea eax, [ebp - 0x6c]
mov edx, 0x82ef7c
call fcn.0040c0d8
mov eax, dword [ebp - 0x6c]
call fcn.0040becc
push eax
call sub.kernel32.dll_GetVolumeInformationW
test eax, eax
je 0x82edc7
lea ecx, [ebp - 0x70]
mov eax, dword [ebp - 0x18]
shr eax, 0x10
movzx eax, ax
mov edx, 4
call fcn.00430f4c
push dword [ebp - 0x70]
push 0x82ef4c
lea ecx, [ebp - 0x74]
movzx eax, word [ebp - 0x18]
mov edx, 4
call fcn.00430f4c
push dword [ebp - 0x74]
mov eax, dword [ebp - 0x14]
mov edx, 3
call fcn.0040c1b8
call fcn.0040a7f4
jmp 0x82edf4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x82ede7
mov eax, dword [ebp - 0x24]
push eax
call sub.kernel32.dll_SetErrorMode
pop eax
jmp eax
inc byte [ebp - 0x25]
cmp byte [ebp - 0x25], 0x5b
jne 0x82ecfa
mov eax, dword [ebp - 0x14]
cmp dword [eax], 0
je 0x82eea4
lea edx, [ebp - 0x58]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
call fcn.007273c4
lea eax, [ebp - 0x58]
lea edx, [ebp - 0x78]
call fcn.00727348
mov edx, dword [ebp - 0x78]
lea eax, [ebp - 8]
mov ecx, 0x82ef34
call fcn.0040c130
lea eax, [ebp - 0x7c]
push eax
mov ecx, 4
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.0040c300
push dword [ebp - 0x7c]
push 0x82ef4c
lea eax, [ebp - 0x80]
push eax
mov ecx, 4
mov edx, 8
mov eax, dword [ebp - 8]
call fcn.0040c300
push dword [ebp - 0x80]
push 0x82ef4c
lea eax, [ebp - 0x84]
push eax
mov ecx, 4
mov edx, 0xb
mov eax, dword [ebp - 8]
call fcn.0040c300
push dword [ebp - 0x84]
mov eax, dword [ebp - 0x14]
mov edx, 5
call fcn.0040c1b8
push 0
mov eax, dword [ebp - 0x14]
mov ecx, 0x82ef5c
mov edx, 0x82ef6c
call fcn.006124ec
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x82eee5
lea eax, [ebp - 0x84]
mov edx, 0xb
call fcn.0040b0b4
lea eax, [ebp - 0x48]
mov edx, 8
call fcn.0040b0b4
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.0040b0b4
pop eax
jmp eax