Function at 0x1037313
Capabilities:
Get disk information

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x220
mov eax, dword [0x111027c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
and dword [ebp - 0x21c], 0
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x220], eax
mov byte [ebp - 0x20f], 0
mov byte [ebp - 0x20e], 0
mov byte [ebp - 0x20d], 0
mov byte [ebp - 0x210], 0
mov byte [ebp - 0x212], 0
mov byte [ebp - 0x215], 0
mov byte [ebp - 0x214], 0
mov byte [ebp - 0x211], 0
mov byte [ebp - 0x213], 0
mov eax, dword [0x111024c]
mov esi, 0x111024c
mov ebx, 0x1003928
cmp eax, esi
je 0x10373aa
test byte [eax + 0x1c], 1
je 0x10373aa
cmp byte [eax + 0x19], 4
jb 0x10373aa
push ebx
push 0x56
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0101894a
mov eax, dword [ebp - 0x220]
mov byte [eax], 0
mov eax, dword [0x111024c]
cmp eax, esi
je 0x1037402
test byte [eax + 0x1c], 1
je 0x10373dc
cmp byte [eax + 0x19], 4
jb 0x10373dc
push edi
push ebx
push 0x57
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01019633
mov eax, dword [0x111024c]
cmp eax, esi
je 0x1037402
test byte [eax + 0x1c], 1
je 0x1037402
cmp byte [eax + 0x19], 4
jb 0x1037402
push dword [ebp + 0x10]
push ebx
push 0x58
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01019fa8
mov eax, dword [0x111024c]
test edi, edi
jne 0x103742f
mov esi, 0x80070057
cmp eax, 0x111024c
je 0x1037891
test byte [eax + 0x1c], 1
je 0x1037891
cmp byte [eax + 0x19], 2
jb 0x1037891
push ebx
push 0x59
jmp 0x103748d
cmp dword [ebp + 0x10], 2
je 0x103749d
cmp dword [ebp + 0x10], 3
jle 0x1037466
cmp dword [ebp + 0x10], 6
jg 0x1037466
mov byte [ebp - 0x20f], 1
mov byte [ebp - 0x20d], 1
mov byte [ebp - 0x20e], 1
mov byte [ebp - 0x210], 1
mov byte [ebp - 0x212], 1
jmp 0x10374a4
mov esi, 0x80070057
cmp eax, 0x111024c
je 0x1037891
test byte [eax + 0x1c], 1
je 0x1037891
cmp byte [eax + 0x19], 2
jb 0x1037891
push ebx
push 0x5a
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0101894a
jmp 0x1037891
mov byte [ebp - 0x215], 1
lea eax, [ebp - 0x214]
push eax
push 0
push edi
call fcn.0107b7b2
mov esi, eax
test esi, esi
jge 0x103750a
cmp esi, 0x8078011a
je 0x10375b7
cmp esi, 0x8078006f
je 0x10375b7
cmp esi, 0x80780071
je 0x10375b7
mov eax, dword [0x111024c]
cmp eax, 0x111024c
je 0x1037891
test byte [eax + 0x1c], 1
je 0x1037891
cmp byte [eax + 0x19], 2
jb 0x1037891
push esi
push ebx
push 0x5b
jmp 0x1037819
cmp byte [ebp - 0x214], 0
jne 0x10375b7
push 0x104
lea eax, [ebp - 0x20c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetVolumePathNameW]
test eax, eax
jne 0x1037577
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [0x111024c]
cmp eax, 0x111024c
je 0x103755e
test byte [eax + 0x1c], 1
je 0x103755e
cmp byte [eax + 0x19], 2
jb 0x103755e
push esi
push edi
push ebx
push 0x5c
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01048c37
test esi, esi
jle 0x1037891
and esi, 0xffff
or esi, 0x80070000
jmp 0x1037891
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
dec eax
dec eax
je 0x103788c
dec eax
je 0x10375c1
dec eax
je 0x10375a3
dec eax
jne 0x10376b3
mov esi, 0x80780082
jmp 0x1037891
push 0x1002394
push 0x6f3
push 0x1003938
call fcn.0107b644
mov esi, 0x80780083
jmp 0x1037891
cmp byte [ebp - 0x210], 0
je 0x1037671
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x10375d3
sub eax, edx
sar eax, 1
cmp word [edi + eax*2 - 2], 0x3a
jne 0x1037621
mov eax, dword [0x111024c]
cmp eax, 0x111024c
je 0x10376b3
test byte [eax + 0x1c], 1
je 0x10376b3
cmp byte [eax + 0x19], 2
jb 0x10376b3
push edi
push ebx
push 0x5d
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01019633
jmp 0x10376b3
lea eax, [ebp - 0x210]
push eax
push edi
mov byte [ebp - 0x210], 0
call fcn.010d2cb0
mov esi, eax
test esi, esi
jge 0x1037668
mov eax, dword [0x111024c]
cmp eax, 0x111024c
je 0x1037891
test byte [eax + 0x1c], 1
je 0x1037891
cmp byte [eax + 0x19], 2
jb 0x1037891
push esi
push ebx
push 0x5e
jmp 0x1037819
cmp byte [ebp - 0x210], 0
je 0x10376b3
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x1037676
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x20c]
push eax
push edi
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x10376a1
mov byte [ebp - 0x211], 1
cmp byte [ebp - 0x215], 0
je 0x10376bd
cmp byte [ebp - 0x211], 0
jne 0x10376bd
mov esi, 0x80780057
jmp 0x1037891
cmp byte [ebp - 0x20f], 0
je 0x1037769
lea eax, [ebp - 0x21c]
push eax
push edi
mov byte [ebp - 0x20f], 0
call fcn.0107efc4
mov esi, eax
test esi, esi
jge 0x1037711
mov eax, dword [0x111024c]
cmp eax, 0x111024c
je 0x1037891
test byte [eax + 0x1c], 1
je 0x1037891
cmp byte [eax + 0x19], 2
jb 0x1037891
push esi
push ebx
push 0x5f
jmp 0x1037819
lea eax, [ebp - 0x20f]
push eax
push dword [ebp - 0x21c]
call fcn.010f7b35
mov esi, eax
test esi, esi
jge 0x1037756
mov eax, dword [0x111024c]
cmp eax, 0x111024c
je 0x1037891
test byte [eax + 0x1c], 1
je 0x1037891
cmp byte [eax + 0x19], 2
jb 0x1037891
push esi
push ebx
push 0x60
jmp 0x1037819
cmp byte [ebp - 0x20f], 0
jne 0x1037769
mov esi, 0x80780084
jmp 0x1037891
cmp byte [ebp - 0x20d], 0
je 0x10377c9
lea eax, [ebp - 0x20d]
push eax
push edi
mov byte [ebp - 0x20d], 0
call fcn.010d2d5c
mov esi, eax
test esi, esi
jge 0x10377b6
mov eax, dword [0x111024c]
cmp eax, 0x111024c
je 0x1037891
test byte [eax + 0x1c], 1
je 0x1037891
cmp byte [eax + 0x19], 2
jb 0x1037891
push esi
push ebx
push 0x61
jmp 0x1037819
cmp byte [ebp - 0x20d], 0
je 0x10377c9
mov esi, 0x80780085
jmp 0x1037891
cmp byte [ebp - 0x20e], 0
je 0x1037836
cmp byte [ebp - 0x211], 0
jne 0x1037836
lea eax, [ebp - 0x20e]
push eax
push edi
mov byte [ebp - 0x20e], 0
call fcn.010d2ee8
mov esi, eax
test esi, esi
jge 0x1037826
mov eax, dword [0x111024c]
cmp eax, 0x111024c
je 0x1037891
test byte [eax + 0x1c], 1
je 0x1037891
cmp byte [eax + 0x19], 2
jb 0x1037891
push esi
push ebx
push 0x62
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01019fa8
jmp 0x1037891
cmp byte [ebp - 0x20e], 0
je 0x1037836
mov esi, 0x80780086
jmp 0x1037891
cmp byte [ebp - 0x212], 0
je 0x103787c
lea eax, [ebp - 0x213]
push eax
push edi
call fcn.010d2dd7
mov esi, eax
test esi, esi
jge 0x103787c
mov eax, dword [0x111024c]
cmp eax, 0x111024c
je 0x1037891
test byte [eax + 0x1c], 1
je 0x1037891
cmp byte [eax + 0x19], 2
jb 0x1037891
push esi
push edi
push ebx
push 0x63
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01048c37
jmp 0x1037891
mov al, byte [ebp - 0x213]
mov ecx, dword [ebp - 0x220]
mov byte [ecx], al
jmp 0x1037891
mov esi, 0x8078012f
push dword [ebp - 0x21c]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov eax, dword [0x111024c]
cmp eax, 0x111024c
je 0x10378c3
test byte [eax + 0x1c], 1
je 0x10378c3
cmp byte [eax + 0x19], 4
jb 0x10378c3
push ebx
push 0x64
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0101894a
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.0106f798
leave
ret 0x10