Function at 0x301288bc
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [section..cdata]
and dword [ebp - 0x10], 0
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
test edi, edi
mov dword [ebp - 4], eax
je 0x30128ad3
cmp word [edi], 0
je 0x30128ad3
push edi
call dword [sym.imp.MSO.DLL_Ordinal_295]
mov esi, dword [ebp + 0xc]
mov ebx, eax
lea eax, [ebp - 0x14]
push eax
push esi
push dword [ebp + 0x10]
push edi
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
test eax, eax
mov dword [ebp + 8], eax
je 0x30128ad3
mov edx, eax
cmp edx, dword [ebp + 0x10]
jg 0x3012892c
cmp word [edi + ebx*2 - 2], 0x2e
jne 0x30128942
cmp word [esi + edx*2 - 2], 0x2e
je 0x30128942
inc edx
cmp edx, dword [ebp + 0x10]
mov dword [ebp + 8], edx
jle 0x30128935
mov eax, edx
neg eax
jmp 0x30128ad6
lea eax, [esi + edx*2]
and word [eax], 0
mov word [eax - 2], 0x2e
cmp edx, 0x103
jg 0x30128ad3
mov ax, word [edi + 2]
xor esi, esi
cmp ax, 0x3a
jne 0x30128982
mov ax, word [edi]
cmp ax, 0x41
jb 0x30128969
cmp ax, 0x5a
jbe 0x3012897d
cmp ax, 0x61
jb 0x30128ad3
cmp ax, 0x7a
ja 0x30128ad3
push 2
pop esi
jmp 0x301289bf
cmp word [edi], 0x5c
jne 0x301289bf
cmp ax, 0x5c
jne 0x301289bf
xor esi, esi
inc esi
lea eax, [edi + 4]
mov cx, word [eax]
test cx, cx
je 0x30128ad3
inc eax
inc eax
cmp cx, 0x5c
jne 0x30128994
test esi, esi
je 0x301289b0
xor esi, esi
jmp 0x30128994
sub eax, edi
sar eax, 1
mov esi, eax
cmp esi, 6
jl 0x30128ad3
and dword [ebp + 0x10], 0
xor eax, eax
cmp edx, 0x7f
setg al
push 8
pop ebx
mov dword [ebp + 0xc], eax
lea eax, [edi + esi*2]
cmp word [eax], 0x2e
je 0x30128a7d
mov cx, word [eax]
test cx, cx
je 0x30128b3d
cmp cx, 0x1f
jbe 0x30128ad3
movzx ecx, cx
cmp ecx, 0x3e
jg 0x30128a4f
je 0x30128ad3
cmp ecx, 0x2f
jg 0x30128aea
je 0x30128a6b
cmp ecx, 0x22
je 0x30128ad3
cmp ecx, 0x2a
je 0x30128ad3
jle 0x30128b17
cmp ecx, 0x2c
jle 0x30128b2f
cmp ecx, 0x2e
jne 0x30128b17
cmp ebx, 3
jne 0x30128a43
mov dword [ebp + 0xc], 1
and dword [ebp + 0x10], 0
push 3
pop ebx
jmp 0x30128b36
cmp ecx, 0x7c
jg 0x30128af7
je 0x30128ad3
sub ecx, 0x3f
je 0x30128ad3
sub ecx, 0x1c
je 0x30128b2f
dec ecx
jne 0x30128ae5
inc eax
inc eax
mov cx, word [eax]
movzx edx, cx
sub edx, 0
je 0x30128ad3
sub edx, 0x2e
jne 0x30128a9f
inc eax
inc eax
cmp word [eax], 0x2e
jne 0x30128a87
inc eax
inc eax
mov cx, word [eax]
cmp cx, 0x5c
je 0x30128a6b
cmp cx, 0x2f
je 0x30128a6b
mov dword [ebp + 0xc], 1
jmp 0x30128ab5
dec edx
je 0x30128ad3
sub edx, 0x2d
je 0x30128ad3
and dword [ebp + 0x10], 0
push 8
pop ebx
jmp 0x301289ea
inc eax
inc eax
cmp word [eax], 0x2e
je 0x30128ab3
mov cx, word [eax]
cmp cx, 0x5c
je 0x30128ad3
cmp cx, 0x2f
je 0x30128ad3
test cx, cx
jne 0x301289ea
or eax, 0xffffffff
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.30056b36
leave
ret 0xc
dec ecx
je 0x30128b2f
jmp 0x30128b17
sub ecx, 0x3a
je 0x30128ad3
dec ecx
je 0x30128b2f
dec ecx
je 0x30128ad3
jmp 0x30128ae5
cmp ecx, 0x8b
je 0x30128ad3
cmp ecx, 0x92
jle 0x30128b17
cmp ecx, 0x95
jle 0x30128ad3
cmp ecx, 0x9b
je 0x30128ad3
cmp byte [0x301e4d00], 0
je 0x30128b36
inc dword [ebp + 0x10]
xor ecx, ecx
cmp dword [ebp + 0x10], ebx
setg cl
test ecx, ecx
je 0x30128b36
mov dword [ebp + 0xc], 1
inc eax
inc eax
jmp 0x301289de
cmp dword [ebp + 0xc], 0
je 0x30128b68
test esi, esi
lea ecx, [ebp - 0x10]
jne 0x30128b70
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 0x30128b68
cmp dword [ebp - 0x10], 0xc
je 0x30128ad3
mov eax, dword [ebp + 8]
jmp 0x30128ad6
cmp esi, 2
jne 0x30128b9c
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 0x30128b53
xor eax, eax
push eax
push eax
push eax
push ecx
push eax
push eax
lea esi, [edi + esi*2]
mov bx, word [esi]
push eax
push edi
mov word [esi], ax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
mov word [esi], bx
jmp 0x30128b5a