Function at 0x1037248
Capabilities:
Get disk information

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x220
mov eax, dword [0x111127c]
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 [0x111124c]
mov esi, 0x111124c
mov ebx, 0x1003920
cmp eax, esi
je 0x10372df
test byte [eax + 0x1c], 1
je 0x10372df
cmp byte [eax + 0x19], 4
jb 0x10372df
push ebx
push 0x56
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010189d0
mov eax, dword [ebp - 0x220]
mov byte [eax], 0
mov eax, dword [0x111124c]
cmp eax, esi
je 0x1037337
test byte [eax + 0x1c], 1
je 0x1037311
cmp byte [eax + 0x19], 4
jb 0x1037311
push edi
push ebx
push 0x57
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01019680
mov eax, dword [0x111124c]
cmp eax, esi
je 0x1037337
test byte [eax + 0x1c], 1
je 0x1037337
cmp byte [eax + 0x19], 4
jb 0x1037337
push dword [ebp + 0x10]
push ebx
push 0x58
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010189f6
mov eax, dword [0x111124c]
test edi, edi
jne 0x1037364
mov esi, 0x80070057
cmp eax, 0x111124c
je 0x10377c6
test byte [eax + 0x1c], 1
je 0x10377c6
cmp byte [eax + 0x19], 2
jb 0x10377c6
push ebx
push 0x59
jmp 0x10373c2
cmp dword [ebp + 0x10], 2
je 0x10373d2
cmp dword [ebp + 0x10], 3
jle 0x103739b
cmp dword [ebp + 0x10], 6
jg 0x103739b
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 0x10373d9
mov esi, 0x80070057
cmp eax, 0x111124c
je 0x10377c6
test byte [eax + 0x1c], 1
je 0x10377c6
cmp byte [eax + 0x19], 2
jb 0x10377c6
push ebx
push 0x5a
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010189d0
jmp 0x10377c6
mov byte [ebp - 0x215], 1
lea eax, [ebp - 0x214]
push eax
push 0
push edi
call fcn.0107b62c
mov esi, eax
test esi, esi
jge 0x103743f
cmp esi, 0x8078011a
je 0x10374ec
cmp esi, 0x8078006f
je 0x10374ec
cmp esi, 0x80780071
je 0x10374ec
mov eax, dword [0x111124c]
cmp eax, 0x111124c
je 0x10377c6
test byte [eax + 0x1c], 1
je 0x10377c6
cmp byte [eax + 0x19], 2
jb 0x10377c6
push esi
push ebx
push 0x5b
jmp 0x103774e
cmp byte [ebp - 0x214], 0
jne 0x10374ec
push 0x104
lea eax, [ebp - 0x20c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetVolumePathNameW]
test eax, eax
jne 0x10374ac
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [0x111124c]
cmp eax, 0x111124c
je 0x1037493
test byte [eax + 0x1c], 1
je 0x1037493
cmp byte [eax + 0x19], 2
jb 0x1037493
push esi
push edi
push ebx
push 0x5c
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010196ed
test esi, esi
jle 0x10377c6
and esi, 0xffff
or esi, 0x80070000
jmp 0x10377c6
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
dec eax
dec eax
je 0x10377c1
dec eax
je 0x10374f6
dec eax
je 0x10374d8
dec eax
jne 0x10375e8
mov esi, 0x80780082
jmp 0x10377c6
push 0x1002394
push 0x6f3
push 0x1003930
call fcn.0107b4be
mov esi, 0x80780083
jmp 0x10377c6
cmp byte [ebp - 0x210], 0
je 0x10375a6
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x1037508
sub eax, edx
sar eax, 1
cmp word [edi + eax*2 - 2], 0x3a
jne 0x1037556
mov eax, dword [0x111124c]
cmp eax, 0x111124c
je 0x10375e8
test byte [eax + 0x1c], 1
je 0x10375e8
cmp byte [eax + 0x19], 2
jb 0x10375e8
push edi
push ebx
push 0x5d
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01019680
jmp 0x10375e8
lea eax, [ebp - 0x210]
push eax
push edi
mov byte [ebp - 0x210], 0
call fcn.010d2d4a
mov esi, eax
test esi, esi
jge 0x103759d
mov eax, dword [0x111124c]
cmp eax, 0x111124c
je 0x10377c6
test byte [eax + 0x1c], 1
je 0x10377c6
cmp byte [eax + 0x19], 2
jb 0x10377c6
push esi
push ebx
push 0x5e
jmp 0x103774e
cmp byte [ebp - 0x210], 0
je 0x10375e8
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x10375ab
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 0x10375d6
mov byte [ebp - 0x211], 1
cmp byte [ebp - 0x215], 0
je 0x10375f2
cmp byte [ebp - 0x211], 0
jne 0x10375f2
mov esi, 0x80780057
jmp 0x10377c6
cmp byte [ebp - 0x20f], 0
je 0x103769e
lea eax, [ebp - 0x21c]
push eax
push edi
mov byte [ebp - 0x20f], 0
call fcn.0107ef11
mov esi, eax
test esi, esi
jge 0x1037646
mov eax, dword [0x111124c]
cmp eax, 0x111124c
je 0x10377c6
test byte [eax + 0x1c], 1
je 0x10377c6
cmp byte [eax + 0x19], 2
jb 0x10377c6
push esi
push ebx
push 0x5f
jmp 0x103774e
lea eax, [ebp - 0x20f]
push eax
push dword [ebp - 0x21c]
call fcn.010f7d68
mov esi, eax
test esi, esi
jge 0x103768b
mov eax, dword [0x111124c]
cmp eax, 0x111124c
je 0x10377c6
test byte [eax + 0x1c], 1
je 0x10377c6
cmp byte [eax + 0x19], 2
jb 0x10377c6
push esi
push ebx
push 0x60
jmp 0x103774e
cmp byte [ebp - 0x20f], 0
jne 0x103769e
mov esi, 0x80780084
jmp 0x10377c6
cmp byte [ebp - 0x20d], 0
je 0x10376fe
lea eax, [ebp - 0x20d]
push eax
push edi
mov byte [ebp - 0x20d], 0
call fcn.010d2df6
mov esi, eax
test esi, esi
jge 0x10376eb
mov eax, dword [0x111124c]
cmp eax, 0x111124c
je 0x10377c6
test byte [eax + 0x1c], 1
je 0x10377c6
cmp byte [eax + 0x19], 2
jb 0x10377c6
push esi
push ebx
push 0x61
jmp 0x103774e
cmp byte [ebp - 0x20d], 0
je 0x10376fe
mov esi, 0x80780085
jmp 0x10377c6
cmp byte [ebp - 0x20e], 0
je 0x103776b
cmp byte [ebp - 0x211], 0
jne 0x103776b
lea eax, [ebp - 0x20e]
push eax
push edi
mov byte [ebp - 0x20e], 0
call fcn.010d2f82
mov esi, eax
test esi, esi
jge 0x103775b
mov eax, dword [0x111124c]
cmp eax, 0x111124c
je 0x10377c6
test byte [eax + 0x1c], 1
je 0x10377c6
cmp byte [eax + 0x19], 2
jb 0x10377c6
push esi
push ebx
push 0x62
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010189f6
jmp 0x10377c6
cmp byte [ebp - 0x20e], 0
je 0x103776b
mov esi, 0x80780086
jmp 0x10377c6
cmp byte [ebp - 0x212], 0
je 0x10377b1
lea eax, [ebp - 0x213]
push eax
push edi
call fcn.010d2e71
mov esi, eax
test esi, esi
jge 0x10377b1
mov eax, dword [0x111124c]
cmp eax, 0x111124c
je 0x10377c6
test byte [eax + 0x1c], 1
je 0x10377c6
cmp byte [eax + 0x19], 2
jb 0x10377c6
push esi
push edi
push ebx
push 0x63
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010196ed
jmp 0x10377c6
mov al, byte [ebp - 0x213]
mov ecx, dword [ebp - 0x220]
mov byte [ecx], al
jmp 0x10377c6
mov esi, 0x8078012f
push dword [ebp - 0x21c]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov eax, dword [0x111124c]
cmp eax, 0x111124c
je 0x10377f8
test byte [eax + 0x1c], 1
je 0x10377f8
cmp byte [eax + 0x19], 4
jb 0x10377f8
push ebx
push 0x64
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010189d0
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.0106f5f8
leave
ret 0x10