Function at 0x971e30
Capabilities:
Get disk information

Disassembly:
sub esp, 0x630
mov eax, dword [0xb196ec]
xor eax, esp
mov dword [esp + 0x628], eax
push ebx
push esi
push edi
push 0x103
lea eax, [esp + 0x11d]
push 0
push eax
mov edi, ecx
mov byte [esp + 0x124], 0
call fcn.00a7ffb0
add esp, 0xc
push 0x40f
lea ecx, [esp + 0x225]
push 0
push ecx
mov byte [esp + 0x22c], 0
call fcn.00a7ffb0
add esp, 0xc
test edi, edi
je 0x97210b
cmp byte [edi], 0
je 0x97210b
push 0
push 0xaec2e0
push edi
call fcn.0095c8c0
add esp, 0xc
cmp eax, 0xffffffff
je 0x971eb4
mov ebx, edi
call fcn.00981330
mov eax, 0xaec2e4
lea esp, [esp]
inc eax
cmp byte [eax], 0
jne 0x971ec0
sub eax, 0xaec2e4
push eax
mov eax, 0xaec2e4
mov ecx, edi
call fcn.0094c380
add esp, 4
test eax, eax
jne 0x971ef2
push 0xaa1564
push 0xaec2f4
push edi
call fcn.0095e130
add esp, 0xc
cmp byte [edi], 0x5c
jne 0x971f0b
cmp byte [edi + 1], 0x5c
jne 0x971f0b
call fcn.00981cb0
cmp eax, 1
je 0x97210b
mov eax, 0xaec300
inc eax
cmp byte [eax], 0
jne 0x971f10
sub eax, 0xaec300
push eax
mov eax, 0xaec300
mov ecx, edi
call fcn.0094c380
add esp, 4
test eax, eax
jne 0x97210b
push eax
push 0xaec30c
push edi
call fcn.0095c8c0
mov esi, eax
add esp, 0xc
cmp esi, 0xffffffff
je 0x972017
cmp dword [0xbfda78], 0
jne 0x971f7a
push str.GetVolumePathNameA
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0xbfda78], eax
test eax, eax
je 0x972017
mov eax, 0xaec30c
nop
inc eax
cmp byte [eax], 0
jne 0x971f80
sub eax, 0xaec30c
add eax, edi
add eax, esi
push 0x5c
push eax
call fcn.00a7a2c0
mov esi, eax
add esp, 8
test esi, esi
je 0x972017
push 0x103
lea edx, [esp + 0x15]
push 0
push edx
mov byte [esp + 0x1c], 0
call fcn.00a7ffb0
add esp, 0xc
push 0x104
lea eax, [esp + 0x14]
push eax
push edi
call dword [0xbfda78]
test eax, eax
je 0x972017
lea ecx, [esp + 0x10]
call fcn.00960910
inc esi
push esi
lea ecx, [esp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [esp + 0x10]
mov edx, eax
sub edi, edx
lea esp, [esp]
mov cl, byte [eax]
mov byte [edi + eax], cl
inc eax
test cl, cl
jne 0x971ff0
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x628]
xor ecx, esp
call fcn.00a78f21
add esp, 0x630
ret
mov esi, dword [sym.imp.KERNEL32.dll_QueryDosDeviceA]
mov bl, 0x41
mov byte [esp + 0x119], 0x3a
mov byte [esp + 0x11a], 0
mov byte [esp + 0xf], bl
push 0x410
lea eax, [esp + 0x224]
push eax
lea ecx, [esp + 0x120]
push ecx
mov byte [esp + 0x124], bl
mov byte [esp + 0x22c], 0
call esi
test eax, eax
je 0x9720c6
push 0
lea edx, [esp + 0x224]
push 0xaec2e0
push edx
call fcn.0095c8c0
add esp, 0xc
cmp eax, 0xffffffff
je 0x972089
lea ebx, [esp + 0x220]
call fcn.00981330
mov bl, byte [esp + 0xf]
lea ecx, [esp + 0x220]
call fcn.00960910
cmp byte [esp + 0x220], 0
lea eax, [esp + 0x220]
je 0x9720ac
inc eax
cmp byte [eax], 0
jne 0x9720a6
lea ecx, [esp + 0x220]
sub eax, ecx
push eax
mov eax, ecx
mov ecx, edi
call fcn.0094c380
add esp, 4
test eax, eax
je 0x972125
inc bl
cmp bl, 0x5a
mov byte [esp + 0xf], bl
jle 0x972033
push 0xaa1564
push 0xaec334
push edi
call fcn.0095e130
add esp, 0xc
test eax, eax
jne 0x971ffa
push 0xaa1564
push 0xaec350
push edi
call fcn.0095e130
add esp, 0xc
test eax, eax
jne 0x971ffa
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x628]
xor ecx, esp
call fcn.00a78f21
add esp, 0x630
ret
lea esi, [esp + 0x220]
call fcn.00960950
lea edx, [esp + 0x118]
push edx
mov eax, esi
push eax
push edi
call fcn.0095e130
mov ecx, dword [esp + 0x640]
add esp, 0xc
pop edi
pop esi
pop ebx
xor ecx, esp
mov eax, 1
call fcn.00a78f21
add esp, 0x630
ret