Function at 0x101962b0
Capabilities:
Get disk information
Get file system object information

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x10236020
push fcn.101c8390
mov eax, dword fs:[0]
push eax
sub esp, 0xd54
mov eax, dword [0x102519c8]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
mov ebx, ecx
mov dword [ebp - 0xd58], ebx
mov dword [ebp - 0xd5c], ebx
mov edi, dword [ebp + 8]
mov dword [ebp - 0xd54], edi
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xd4c], eax
push 0
lea ecx, [ebp - 0xa84]
call fcn.1005b320
push 0
push 0x10202940
push edi
push 0x10202940
push 0x10202940
push 0xc2
lea ecx, [ebp - 0xa84]
call fcn.1005ccb0
mov dword [ebp - 0xd50], eax
cmp eax, 3
jle 0x10196358
lea ecx, [ebp - 0xa84]
call fcn.1005b6b0
mov eax, 0xa
jmp 0x10196d30
cmp word [edi], 0x2f
jne 0x10196371
push 0x2e
push edi
call sub.msvcrt.dll_wcschr
add esp, 8
test eax, eax
je 0x10196d23
lea ecx, [ebp - 0xd3c]
call fcn.1001b890
push 5
push 0x10202b9c
push edi
call sub.msvcrt.dll__wcsnicmp
add esp, 0xc
test eax, eax
jne 0x101963ab
add edi, 0xa
movzx eax, word [edi]
cmp eax, 0x5c
je 0x101963a0
cmp eax, 0x2f
jne 0x101963a5
add edi, 2
jmp 0x10196393
mov dword [ebp - 0xd54], edi
push 4
push 0x10205260
push edi
call sub.msvcrt.dll_wcsncmp
add esp, 0xc
test eax, eax
jne 0x101963c3
xor esi, esi
jmp 0x101963da
push 2
push 0x10205498
push edi
call sub.msvcrt.dll_wcsncmp
add esp, 0xc
mov esi, eax
neg esi
sbb esi, esi
inc esi
mov dword [ebp - 0xd44], esi
mov dword [ebp - 0xd40], 0
cmp word [edi + 2], 0x3a
jne 0x1019644a
cmp word [edi + 4], 0x5c
jne 0x1019644a
mov dword [ebp - 0xd40], 1
xor eax, eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
push 3
push edi
lea eax, [ebp - 0x3c]
push eax
call sub.msvcrt.dll_wcsncpy
add esp, 0xc
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 4
je 0x1019643f
cmp eax, 1
jne 0x1019644a
mov esi, 1
mov dword [ebp - 0xd44], esi
push 0x102053b4
push edi
call sub.msvcrt.dll_wcsstr
add esp, 8
mov dword [ebp - 0xd64], eax
test eax, eax
je 0x10196483
cmp dword [ebp - 0xd40], 0
jne 0x10196483
push 3
push 0x1021cb64
push edi
call sub.msvcrt.dll_wcsncmp
add esp, 0xc
test eax, eax
jne 0x10196bce
cmp dword [ebp - 0xd50], 3
jl 0x1019649c
push edi
mov ecx, ebx
call fcn.10196df0
test eax, eax
jne 0x10196d61
or ebx, 0xffffffff
mov dword [ebp - 0xd48], ebx
push 0x2b4
push 0
lea eax, [ebp - 0xd38]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [ebp - 0xd60], 0
mov dword [ebp - 4], 0
mov ecx, 0x10205498
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x101964f9
test dx, dx
je 0x101964f5
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x101964f9
add eax, 4
add ecx, 4
test dx, dx
jne 0x101964d3
xor eax, eax
jmp 0x101964fe
sbb eax, eax
or eax, 1
test eax, eax
je 0x1019655f
mov ecx, 0x1021cb6c
mov eax, edi
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x10196536
test dx, dx
je 0x10196532
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x10196536
add eax, 4
add ecx, 4
test dx, dx
jne 0x10196510
xor eax, eax
jmp 0x1019653b
sbb eax, eax
or eax, 1
test eax, eax
je 0x1019655f
push 0x800
push 0x2b4
lea eax, [ebp - 0xd38]
push eax
push 0
push edi
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov dword [ebp - 0xd60], eax
mov dword [ebp - 4], 0xfffffffe
jmp 0x10196596
cmp dword [ebp - 0xd60], 0
je 0x101965b4
xor ebx, ebx
test dword [ebp - 0xd30], 0x20000000
je 0x101965b4
mov ebx, 0x10
jmp 0x101965ce
cmp ebx, 0xffffffff
jne 0x101965ce
test esi, esi
jne 0x101965c5
push edi
call fcn.100606e0
mov ebx, eax
cmp ebx, 0xffffffff
je 0x10196a79
test bl, 0x10
je 0x101969e3
push edi
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
push eax
lea ecx, [ebp - 0xd54]
call fcn.10002490
mov esi, dword [ebp - 0xd54]
add esi, 2
lea eax, [ebp - 0x2c]
push eax
push esi
call dword [sym.imp.ole32.dll_IIDFromString]
test eax, eax
jne 0x10196691
mov ebx, dword [ebp - 0xd58]
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x1019661a
mov eax, dword [ecx]
call dword [eax + 0x1c]
jmp 0x1019661f
mov eax, 0x10202940
push eax
lea ecx, [ebp - 0x170]
call fcn.10183f20
push esi
lea ecx, [ebp - 0x15c]
call fcn.10008170
mov eax, dword [ebx]
push 0
push 1
push 2
push 1
push 3
push 0
lea ecx, [ebp - 0x170]
push ecx
push esi
mov ecx, ebx
call dword [eax + 0x74]
lea ecx, [ebp - 0x170]
test eax, eax
je 0x1019668c
call fcn.101841c0
lea ecx, [ebp - 0xd54]
call fcn.10007e10
lea ecx, [ebp - 0xd3c]
call fcn.10007e10
lea ecx, [ebp - 0xa84]
call fcn.1005b6b0
mov eax, 0xb
jmp 0x10196d30
call fcn.101841c0
push 0x410
push 0
lea eax, [ebp - 0x85c]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
push 0x1021cb74
push edi
lea eax, [ebp - 0x85c]
push eax
mov ebx, dword [sym.imp.SHLWAPI.dll_PathCombineW]
call ebx
mov esi, eax
lea ecx, [ebp - 0xd50]
call fcn.1001b890
test esi, esi
je 0x101966f8
lea ecx, [ebp - 0x85c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x101966d6
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x85c]
push eax
lea ecx, [ebp - 0xd50]
call fcn.10003740
push str.target.lnk
push edi
lea eax, [ebp - 0x85c]
push eax
call ebx
mov esi, eax
lea ecx, [ebp - 0xd4c]
call fcn.1001b890
test esi, esi
je 0x10196743
lea ecx, [ebp - 0x85c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10196721
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x85c]
push eax
lea ecx, [ebp - 0xd4c]
call fcn.10003740
mov esi, dword [ebp - 0xd50]
push esi
call fcn.1000aa00
add esp, 4
test eax, eax
je 0x1019694b
lea ecx, [ebp - 0xd40]
call fcn.10014240
mov ecx, dword [0x1025b434]
test ecx, ecx
je 0x1019693e
mov eax, dword [ecx]
lea edx, [ebp - 0xd40]
push edx
push 1
push esi
push ecx
call dword [eax + 0x44]
mov eax, dword [ebp - 0xd40]
test eax, eax
je 0x1019693e
mov dword [ebp - 0xd48], 0
mov ecx, dword [eax]
lea edx, [ebp - 0xd48]
push edx
push eax
call dword [ecx + 0x10]
lea ecx, [ebp - 0xd44]
call fcn.10014240
mov eax, dword [0x1025b434]
mov ecx, dword [eax]
lea edx, [ebp - 0xd44]
push edx
push 1
push dword [ebp - 0xd48]
push eax
call dword [ecx + 0x3c]
cmp dword [ebp - 0xd44], 0
je 0x1019689b
mov ebx, dword [ebp - 0xd58]
mov ecx, ebx
call fcn.10190a70
push eax
lea ecx, [ebp - 0x170]
call fcn.10183f20
push dword [ebp - 0xd48]
lea ecx, [ebp - 0x15c]
call fcn.10008170
mov eax, dword [ebx]
push 0
push 1
push 2
push 1
push 3
push 0
lea ecx, [ebp - 0x170]
push ecx
push dword [ebp - 0xd48]
mov ecx, ebx
call dword [eax + 0x74]
lea ecx, [ebp - 0x170]
test eax, eax
je 0x10196896
call fcn.101841c0
lea ecx, [ebp - 0xd44]
call fcn.1018f5e0
push dword [ebp - 0xd48]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
lea ecx, [ebp - 0xd40]
call fcn.1018f5e0
lea ecx, [ebp - 0xd4c]
call fcn.10007e10
lea ecx, [ebp - 0xd50]
call fcn.10007e10
lea ecx, [ebp - 0xd54]
call fcn.10007e10
lea ecx, [ebp - 0xd3c]
call fcn.10007e10
lea ecx, [ebp - 0xa84]
call fcn.1005b6b0
mov eax, 0xd
jmp 0x10196d30
call fcn.101841c0
push str.0AFACED1_E828_11D1_9187_B532F1E9575D
push dword [ebp - 0xd48]
call sub.msvcrt.dll__wcsicmp
add esp, 8
test eax, eax
jne 0x10196927
push dword [ebp - 0xd4c]
call fcn.1000aa00
add esp, 4
test eax, eax
je 0x10196927
lea ecx, [ebp - 0xd44]
call fcn.1018f5e0
push dword [ebp - 0xd48]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
lea ecx, [ebp - 0xd40]
call fcn.1018f5e0
lea ecx, [ebp - 0xd4c]
call fcn.10007e10
lea ecx, [ebp - 0xd50]
call fcn.10007e10
lea ecx, [ebp - 0xd54]
call fcn.10007e10
lea ecx, [ebp - 0xd3c]
call fcn.10007e10
lea ecx, [ebp - 0xa84]
call fcn.1005b6b0
mov eax, 0xc
jmp 0x10196d30
lea ecx, [ebp - 0xd44]
call fcn.1018f5e0
push dword [ebp - 0xd48]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
lea ecx, [ebp - 0xd40]
call fcn.1018f5e0
jmp 0x101969a2
push edi
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
push eax
lea ecx, [ebp - 0xd40]
call fcn.10002490
push str..0AFACED1_E828_11D1_9187_B532F1E9575D
push dword [ebp - 0xd40]
call sub.msvcrt.dll__wcsicmp
add esp, 8
test eax, eax
jne 0x10196997
push dword [ebp - 0xd4c]
call fcn.1000aa00
add esp, 4
test eax, eax
je 0x10196997
lea ecx, [ebp - 0xd40]
call fcn.10007e10
jmp 0x101968e6
lea ecx, [ebp - 0xd40]
call fcn.10007e10
lea ecx, [ebp - 0xd4c]
call fcn.10007e10
lea ecx, [ebp - 0xd50]
call fcn.10007e10
lea ecx, [ebp - 0xd54]
call fcn.10007e10
lea ecx, [ebp - 0xd3c]
call fcn.10007e10
lea ecx, [ebp - 0xa84]
call fcn.1005b6b0
mov eax, 4
jmp 0x10196d30
cmp ebx, 0xffffffff
je 0x10196a79
mov dword [ebp - 0xd40], 0
mov ecx, dword [ebp - 0xd58]
mov eax, dword [ecx]
call dword [eax + 0x50]
push eax
lea eax, [ebp - 0xd40]
push eax
push edi
call fcn.100dda60
add esp, 0xc
test eax, eax
je 0x10196d18
lea ecx, [ebp - 0xd3c]
cmp dword [ebp - 0xd40], 0
je 0x10196a51
call fcn.10007e10
lea ecx, [ebp - 0xa84]
call fcn.1005b6b0
test esi, esi
je 0x10196a47
mov eax, 5
jmp 0x10196d30
mov eax, 1
jmp 0x10196d30
call fcn.10007e10
lea ecx, [ebp - 0xa84]
call fcn.1005b6b0
test esi, esi
je 0x10196a6f
mov eax, 6
jmp 0x10196d30
mov eax, 2
jmp 0x10196d30
test esi, esi
je 0x10196a9d
lea ecx, [ebp - 0xd3c]
call fcn.10007e10
lea ecx, [ebp - 0xa84]
call fcn.1005b6b0
mov eax, 7
jmp 0x10196d30
mov ebx, dword [ebp - 0xd4c]
test ebx, ebx
je 0x10196b21
cmp word [ebx], 0
je 0x10196b21
push 0x208
push 0
lea eax, [ebp - 0x244]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
push edi
push ebx
lea eax, [ebp - 0x244]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
test eax, eax
je 0x10196b21
lea eax, [ebp - 0x244]
push eax
call fcn.101917f0
add esp, 4
test eax, eax
je 0x10196b21
push 0
push 0x10202940
lea eax, [ebp - 0x244]
push eax
mov ecx, dword [ebp - 0xd58]
call fcn.101960b0
mov esi, eax
lea ecx, [ebp - 0xd3c]
call fcn.10007e10
lea ecx, [ebp - 0xa84]
call fcn.1005b6b0
mov eax, esi
jmp 0x10196d30
push 0x3a
push edi
call sub.msvcrt.dll_wcschr
add esp, 8
mov esi, dword [ebp + 0x10]
test eax, eax
jne 0x10196b82
test esi, esi
je 0x10196bce
push 0x410
push eax
lea eax, [ebp - 0x44c]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
push 0
lea eax, [ebp - 0x44c]
push eax
push 0x208
push 0
push edi
push 0
call dword [sym.imp.KERNEL32.dll_SearchPathW]
test eax, eax
je 0x10196b82
cmp eax, 0x208
jae 0x10196b82
push 0
push ebx
lea eax, [ebp - 0x44c]
jmp 0x10196af6
test esi, esi
je 0x10196bce
push edi
lea eax, [ebp - 0xd44]
push eax
call fcn.100092f0
add esp, 8
mov eax, dword [ebp - 0xd44]
cmp dword [eax - 0xc], 0
je 0x10196bc3
push 0
push ebx
push eax
mov ecx, dword [ebp - 0xd58]
call fcn.101960b0
mov esi, eax
lea ecx, [ebp - 0xd44]
call fcn.10007e10
jmp 0x10196b04
lea ecx, [ebp - 0xd44]
call fcn.10007e10
push 0x2f
push edi
call sub.msvcrt.dll_wcsrchr
mov dword [ebp - 0xd5c], eax
push 0x102053b4
push edi
call sub.msvcrt.dll_wcsstr
mov esi, eax
push 0x1021cc30
push edi
call sub.msvcrt.dll_wcsstr
add esp, 0x18
test eax, eax
jne 0x10196c35
push 0x1021cc38
push edi
call sub.msvcrt.dll_wcsstr
add esp, 8
test eax, eax
jne 0x10196c35
push str._2_e
push edi
call sub.msvcrt.dll_wcsstr
add esp, 8
test eax, eax
jne 0x10196c35
push str._2_E
push edi
call sub.msvcrt.dll_wcsstr
add esp, 8
test eax, eax
jne 0x10196c35
xor ebx, ebx
jmp 0x10196c3a
mov ebx, 1
push 0x2e
push edi
call sub.msvcrt.dll_wcschr
add esp, 8
test eax, eax
jne 0x10196c55
test ebx, ebx
jne 0x10196c55
test esi, esi
je 0x10196d18
push 0x25
push edi
call sub.msvcrt.dll_wcschr
add esp, 8
test eax, eax
jne 0x10196c7c
test esi, esi
jne 0x10196c7c
push edi
mov ecx, dword [ebp - 0xd58]
call fcn.10191ae0
test eax, eax
je 0x10196d4e
mov eax, dword [ebp - 0xd5c]
test eax, eax
je 0x10196c8e
cmp eax, edi
jne 0x10196d9b
test ebx, ebx
jne 0x10196d9b
mov ebx, dword [ebp - 0xd40]
cmp dword [ebp - 0xd64], 0
je 0x10196caf
cmp word [edi], 0x5c
je 0x10196caf
test ebx, ebx
je 0x10196cca
push 0x5c
push edi
call sub.msvcrt.dll_wcschr
add esp, 8
test eax, eax
jne 0x10196d4e
test ebx, ebx
jne 0x10196d4e
test esi, esi
je 0x10196d9b
push 0x208
push 0
lea eax, [ebp - 0x244]
push eax
call sub.msvcrt.dll_memset
sub esi, edi
sar esi, 1
push esi
push edi
lea eax, [ebp - 0x244]
push eax
call sub.msvcrt.dll_wcsncpy
push 0x200
lea eax, [ebp - 0x244]
push eax
push SysReAllocString
call fcn.10176c90
add esp, 0x24
test eax, eax
jne 0x10196d9b
lea ecx, [ebp - 0xd3c]
call fcn.10007e10
lea ecx, [ebp - 0xa84]
call fcn.1005b6b0
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.101f99c6
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebp - 0xd50]
cmp eax, 3
je 0x10196d7e
add eax, 0xfffffffc
cmp eax, 2
ja 0x10196d18
lea ecx, [ebp - 0xd3c]
call fcn.10007e10
lea ecx, [ebp - 0xa84]
call fcn.1005b6b0
mov eax, 9
jmp 0x10196d30
lea ecx, [ebp - 0xd3c]
call fcn.10007e10
lea ecx, [ebp - 0xa84]
call fcn.1005b6b0
mov eax, 3
jmp 0x10196d30
mov eax, dword [ebp - 0xd50]
add eax, 0xfffffffd
cmp eax, 3
ja 0x10196d18
lea ecx, [ebp - 0xd3c]
call fcn.10007e10
lea ecx, [ebp - 0xa84]
call fcn.1005b6b0
mov eax, 8
jmp 0x10196d30