Function at 0x30097b57
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor ebx, ebx
cmp edi, ebx
je 0x30097caa
cmp word [edi], bx
je 0x30097caa
mov esi, dword [ebp + 0xc]
lea eax, [ebp - 0x1c]
push eax
push esi
push dword [ebp + 0x10]
cmp dword [0x3017dbf4], ebx
push edi
jne 0x30097bcd
call fcn.30168d90
cmp eax, ebx
mov dword [ebp + 0xc], eax
je 0x30097caa
cmp eax, dword [ebp + 0x10]
jg 0x30097bc4
push edi
call dword [0x3017b93c]
cmp word [edi + eax*2 - 2], 0x2e
mov ecx, dword [ebp + 0xc]
jne 0x30097be1
cmp word [esi + ecx*2 - 2], 0x2e
je 0x30097be1
inc ecx
cmp ecx, dword [ebp + 0x10]
mov dword [ebp + 0xc], ecx
jle 0x30097bd5
mov eax, ecx
neg eax
pop edi
pop esi
pop ebx
leave
ret 0xc
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
jmp 0x30097b8f
lea eax, [esi + ecx*2]
mov word [eax - 2], 0x2e
mov word [eax], bx
cmp ecx, 0x103
jg 0x30097caa
mov ax, word [edi + 2]
xor esi, esi
mov dword [ebp - 0x18], eax
cmp ax, 0x3a
mov ax, word [edi]
mov dword [ebp - 0x10], eax
jne 0x30097c71
cmp ax, 0x41
jb 0x30097c0e
cmp ax, 0x5a
jbe 0x30097c22
cmp ax, 0x61
jb 0x30097caa
cmp ax, 0x7a
ja 0x30097caa
push 2
pop esi
xor eax, eax
cmp dword [ebp + 0xc], 0x7f
lea ecx, [edi + esi*2]
setg al
cmp word [ecx], 0x2e
mov dword [ebp + 0x10], ebx
mov dword [ebp - 8], 8
mov dword [ebp - 4], eax
mov dword [ebp - 0xc], ecx
je 0x30097d9f
mov ax, word [ecx]
cmp ax, bx
je 0x30097df6
cmp ax, 0x1f
jbe 0x30097caa
movzx eax, ax
cmp eax, 0x2a
jg 0x30097cb2
cmp eax, 0x2a
je 0x30097caa
cmp eax, 0x22
jne 0x30097cc6
jmp 0x30097caa
cmp ax, 0x5c
jne 0x30097c25
cmp word [ebp - 0x18], ax
jne 0x30097c25
push 1
pop edx
lea eax, [edi + 4]
mov cx, word [eax]
cmp cx, bx
je 0x30097caa
inc eax
inc eax
cmp cx, 0x5c
jne 0x30097c83
cmp edx, ebx
je 0x30097c9b
xor edx, edx
jmp 0x30097c83
sub eax, edi
sar eax, 1
mov esi, eax
cmp esi, 6
jge 0x30097c25
or eax, 0xffffffff
jmp 0x30097bc6
cmp eax, 0x2e
jg 0x30097cf6
cmp eax, 0x2e
je 0x30097cda
cmp eax, 0x2b
jl 0x30097cc6
cmp eax, 0x2c
jle 0x30097cd1
inc dword [ebp + 0x10]
mov eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 8]
jle 0x30097cef
mov dword [ebp - 4], 1
jmp 0x30097cef
push 3
pop eax
cmp dword [ebp - 8], eax
jne 0x30097ce9
mov dword [ebp - 4], 1
mov dword [ebp + 0x10], ebx
mov dword [ebp - 8], eax
inc ecx
inc ecx
jmp 0x30097c4b
cmp eax, 0x3a
jg 0x30097d31
cmp eax, 0x3a
je 0x30097caa
cmp eax, 0x2f
jne 0x30097cc6
inc ecx
inc ecx
mov ax, word [ecx]
movzx edx, ax
sub edx, ebx
je 0x30097caa
sub edx, 0x2e
je 0x30097d9f
dec edx
je 0x30097caa
sub edx, 0x2d
je 0x30097caa
mov dword [ebp + 0x10], ebx
mov dword [ebp - 8], 8
jmp 0x30097c57
cmp eax, 0x5b
jg 0x30097d5d
cmp eax, 0x5b
je 0x30097cd1
sub eax, 0x3b
je 0x30097cd1
dec eax
je 0x30097caa
dec eax
je 0x30097cd1
dec eax
je 0x30097caa
dec eax
je 0x30097caa
jmp 0x30097cc6
cmp eax, 0x5c
je 0x30097d05
cmp eax, 0x5d
je 0x30097cd1
cmp eax, 0x7c
je 0x30097caa
cmp eax, 0x8b
je 0x30097caa
cmp eax, 0x92
jle 0x30097cc6
cmp eax, 0x95
jle 0x30097caa
cmp eax, 0x9b
jmp 0x30097c6d
inc ecx
inc ecx
cmp word [ecx], 0x2e
jne 0x30097da9
inc ecx
inc ecx
mov ax, word [ecx]
cmp ax, 0x5c
je 0x30097d05
cmp ax, 0x2f
je 0x30097d05
mov dword [ebp - 4], 1
cmp ax, 0x2e
je 0x30097def
cmp ax, 0x5c
je 0x30097caa
cmp ax, 0x2f
je 0x30097caa
cmp ax, bx
je 0x30097caa
jmp 0x30097c57
inc ecx
inc ecx
mov ax, word [ecx]
jmp 0x30097dc7
cmp dword [ebp - 4], ebx
je 0x30097e1b
cmp esi, ebx
jne 0x30097e23
push ebx
push ebx
push ebx
lea eax, [ebp + 8]
push eax
push ebx
push ebx
cmp dword [0x3017dbf4], ebx
push ebx
push ebx
jne 0x30097e58
call fcn.30168f28
cmp eax, ebx
jne 0x30097e8b
mov eax, dword [ebp + 0xc]
jmp 0x30097bc6
cmp esi, 2
jne 0x30097e60
mov ax, word [ebp - 0x10]
push ebx
push ebx
mov word [ebp - 0x14], ax
mov ax, word [ebp - 0x18]
push ebx
mov word [ebp - 0x12], ax
lea eax, [ebp + 8]
push eax
push ebx
push ebx
cmp dword [0x3017dbf4], ebx
push ebx
lea eax, [ebp - 0x14]
mov word [ebp - 0x10], 0x5c
mov word [ebp - 0xe], bx
push eax
jmp 0x30097e10
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
jmp 0x30097e17
mov eax, dword [ebp - 0xc]
push ebx
mov si, word [eax]
push ebx
push ebx
mov word [eax], bx
lea eax, [ebp + 8]
push eax
push ebx
push ebx
cmp dword [0x3017dbf4], ebx
push ebx
push edi
jne 0x30097e96
call fcn.30168f28
cmp eax, ebx
mov eax, dword [ebp - 0xc]
mov word [eax], si
je 0x30097e1b
cmp dword [ebp + 8], 0xc
jne 0x30097e1b
jmp 0x30097caa
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
jmp 0x30097e81