Function at 0x3010a95b
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x3001d1b0]
xor eax, ebp
mov dword [ebp - 4], eax
and dword [ebp - 0x18], 0
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 8]
test edi, edi
je 0x3010ab6f
cmp word [edi], 0
je 0x3010ab6f
push edi
call dword [sym.imp.MSO.dll_Ordinal_295]
mov ebx, eax
lea eax, [ebp - 0x1c]
push eax
push esi
push dword [ebp + 0x10]
push edi
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
test eax, eax
mov dword [ebp - 0x10], eax
je 0x3010ab6f
mov edx, eax
cmp edx, dword [ebp + 0x10]
jle 0x3010a9bb
neg eax
jmp 0x3010ab72
cmp word [edi + ebx*2 - 2], 0x2e
jne 0x3010a9e5
cmp word [esi + edx*2 - 2], 0x2e
je 0x3010a9e5
inc edx
cmp edx, dword [ebp + 0x10]
mov dword [ebp - 0x10], edx
jle 0x3010a9d8
mov eax, edx
jmp 0x3010a9b4
lea eax, [esi + edx*2]
and word [eax], 0
mov word [eax - 2], 0x2e
cmp edx, 0x103
jg 0x3010ab6f
movzx eax, word [edi + 2]
xor esi, esi
cmp ax, 0x3a
jne 0x3010aa1e
movzx eax, word [edi]
cmp ax, 0x41
jb 0x3010aa0c
cmp ax, 0x5a
jbe 0x3010aa19
add eax, 0xffffff9f
cmp ax, 0x19
ja 0x3010ab6f
push 2
pop esi
jmp 0x3010aa5b
cmp word [edi], 0x5c
jne 0x3010aa5b
cmp ax, 0x5c
jne 0x3010aa5b
xor esi, esi
inc esi
lea eax, [edi + 4]
movzx ecx, word [eax]
test cx, cx
je 0x3010ab6f
inc eax
inc eax
cmp cx, 0x5c
jne 0x3010aa30
test esi, esi
je 0x3010aa4c
xor esi, esi
jmp 0x3010aa30
sub eax, edi
sar eax, 1
mov esi, eax
cmp esi, 6
jl 0x3010ab6f
and dword [ebp - 0x14], 0
xor eax, eax
cmp edx, 0x7f
setg al
push 8
pop ebx
mov dword [ebp - 8], eax
lea eax, [edi + esi*2]
cmp word [eax], 0x2e
je 0x3010ab19
movzx ecx, word [eax]
test cx, cx
je 0x3010abdb
cmp cx, 0x1f
jbe 0x3010ab6f
movzx ecx, cx
cmp ecx, 0x3e
jg 0x3010aaeb
je 0x3010ab6f
cmp ecx, 0x2f
jg 0x3010ab88
je 0x3010ab07
cmp ecx, 0x22
je 0x3010ab6f
cmp ecx, 0x2a
je 0x3010ab6f
jle 0x3010abb5
cmp ecx, 0x2c
jle 0x3010abcd
cmp ecx, 0x2e
jne 0x3010abb5
cmp ebx, 3
jne 0x3010aadf
mov dword [ebp - 8], 1
and dword [ebp - 0x14], 0
push 3
pop ebx
jmp 0x3010abd4
cmp ecx, 0x7c
jg 0x3010ab95
je 0x3010ab6f
sub ecx, 0x3f
je 0x3010ab6f
sub ecx, 0x1c
je 0x3010abcd
dec ecx
jne 0x3010ab83
inc eax
inc eax
movzx ecx, word [eax]
movzx edx, cx
sub edx, 0
je 0x3010ab6f
sub edx, 0x2e
jne 0x3010ab3b
inc eax
inc eax
cmp word [eax], 0x2e
jne 0x3010ab23
inc eax
inc eax
movzx ecx, word [eax]
cmp cx, 0x5c
je 0x3010ab07
cmp cx, 0x2f
je 0x3010ab07
mov dword [ebp - 8], 1
jmp 0x3010ab51
dec edx
je 0x3010ab6f
sub edx, 0x2d
je 0x3010ab6f
and dword [ebp - 0x14], 0
push 8
pop ebx
jmp 0x3010aa86
inc eax
inc eax
cmp word [eax], 0x2e
je 0x3010ab4f
movzx ecx, word [eax]
cmp cx, 0x5c
je 0x3010ab6f
cmp cx, 0x2f
je 0x3010ab6f
test cx, cx
jne 0x3010aa86
or eax, 0xffffffff
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.3020156b
leave
ret 0xc
dec ecx
je 0x3010abcd
jmp 0x3010abb5
sub ecx, 0x3a
je 0x3010ab6f
dec ecx
je 0x3010abcd
dec ecx
je 0x3010ab6f
jmp 0x3010ab83
cmp ecx, 0x8b
je 0x3010ab6f
cmp ecx, 0x92
jle 0x3010abb5
cmp ecx, 0x95
jle 0x3010ab6f
cmp ecx, 0x9b
je 0x3010ab6f
cmp byte [0x30225c90], 0
je 0x3010abd4
inc dword [ebp - 0x14]
xor ecx, ecx
cmp dword [ebp - 0x14], ebx
setg cl
test ecx, ecx
je 0x3010abd4
mov dword [ebp - 8], 1
inc eax
inc eax
jmp 0x3010aa7a
cmp dword [0x302ae7d4], 0
jne 0x3010ac0f
cmp dword [ebp - 8], 0
je 0x3010ac0f
test esi, esi
lea ecx, [ebp - 0x18]
jne 0x3010ac17
xor eax, eax
push eax
push eax
push eax
push ecx
push eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
test eax, eax
je 0x3010ac0f
cmp dword [ebp - 0x18], 0xc
je 0x3010ab6f
mov eax, dword [ebp - 0x10]
jmp 0x3010ab72
cmp esi, 2
jne 0x3010ac43
mov ax, word [edi]
mov word [ebp - 0xc], ax
mov ax, word [edi + 2]
mov word [ebp - 0xa], ax
xor eax, eax
push eax
push eax
push eax
push ecx
push eax
push eax
mov word [ebp - 6], ax
push eax
mov word [ebp - 8], 0x5c
lea eax, [ebp - 0xc]
jmp 0x3010abfa
xor eax, eax
push eax
push eax
push eax
push ecx
push eax
push eax
lea esi, [edi + esi*2]
movzx ebx, word [esi]
push eax
push edi
mov word [esi], ax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
mov word [esi], bx
jmp 0x3010ac01