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

Disassembly:
mov eax, 0x10d51aa
call fcn.0107a498
mov eax, 0x24cc
call fcn.0107a6d0
mov eax, dword [0x10e607c]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x10], eax
movzx eax, byte [esi + 0x30]
push edi
and eax, 0xffffff7f
dec eax
push 0x2a
pop edi
je 0x104b4ff
dec eax
je 0x104b4d0
dec eax
je 0x104b495
dec eax
je 0x104b45b
dec eax
dec eax
je 0x104b454
sub eax, 0x51
je 0x104b4ff
push 5
jmp 0x104b551
push 0xb
jmp 0x104b551
movzx eax, byte [esi + 0x31]
sub eax, 0
je 0x104b48e
dec eax
je 0x104b487
sub eax, 6
je 0x104b480
dec eax
je 0x104b479
dec eax
jne 0x104b48e
push 0x1a
jmp 0x104b551
push 0x19
jmp 0x104b551
push 0x1b
jmp 0x104b551
push 0x1d
jmp 0x104b551
push 0x1c
jmp 0x104b551
movzx eax, byte [esi + 0x31]
dec eax
je 0x104b4c9
dec eax
je 0x104b4c2
dec eax
je 0x104b4bb
dec eax
dec eax
je 0x104b4b4
dec eax
jne 0x104b552
push 0x18
jmp 0x104b551
push 0x17
jmp 0x104b551
push 0x16
jmp 0x104b551
push 0x15
jmp 0x104b551
push 0x14
jmp 0x104b551
test byte [esi + 0x60], 2
je 0x104b54f
movzx eax, byte [esi + 0x31]
sub eax, 0
je 0x104b4fb
dec eax
je 0x104b4f7
dec eax
je 0x104b4f3
dec eax
je 0x104b4ef
dec eax
jne 0x104b552
push 0x10
jmp 0x104b551
push 0xf
jmp 0x104b551
push 0x11
jmp 0x104b551
push 0xe
jmp 0x104b551
push 0xd
jmp 0x104b551
mov al, byte [esi + 0x31]
cmp al, 1
je 0x104b54f
cmp al, 2
je 0x104b54f
mov eax, dword [0x1004c60]
mov dword [ebp - 0x18], eax
mov eax, dword [0x1004c64]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0x34]
mov ax, word [eax]
mov word [ebp - 0x18], ax
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
dec eax
dec eax
je 0x104b54b
dec eax
je 0x104b547
dec eax
je 0x104b44d
dec eax
jne 0x104b44d
push 4
jmp 0x104b551
push 3
jmp 0x104b551
push 2
jmp 0x104b551
push 0x12
pop edi
lea eax, [edi - 2]
cmp eax, 0x1b
ja case.0x104b565.6
movzx eax, byte [eax + 0x104bbc0]
jmp dword [eax*4 + 0x104bb7c]
lea ecx, [ebp - 0x24d8]
call sub.MFC42u.dll_CString::CString_2
and dword [ebp - 4], 0
cmp dword [ebp + 0x10], 3
je 0x104b65b
movzx eax, byte [esi + 0x30]
imul eax, eax, 0x14c
lea ecx, [ebp - 0x220]
push ecx
push esi
call dword [eax + 0x10ef474]
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x24d8]
call sub.MFC42u.dll_CString::operator
push 0x5c
lea ecx, [ebp - 0x24d8]
call fcn.01079596
push 0x200
push 0x2b4
lea eax, [ebp - 0x24d4]
push eax
push 0
push dword [ebp - 0x24d8]
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
test eax, eax
je 0x104b5fd
push 0x104
lea eax, [ebp - 0x24c8]
push eax
lea eax, [ebp - 0x220]
push eax
call dword [sym.imp.msvcrt.dll_wcsncpy]
add esp, 0xc
jmp 0x104b61c
movzx eax, byte [esi + 0x30]
imul eax, eax, 0x14c
push 0
push 0x100
lea ecx, [ebp - 0x220]
push ecx
push esi
call dword [eax + 0x10ef470]
push 0x70
call sub.MFC42u.dll_operatornew
pop ecx
mov dword [ebp - 0x14], eax
test eax, eax
mov byte [ebp - 4], 1
je 0x104b655
movzx eax, byte [esi + 0x30]
imul eax, eax, 0x14c
push esi
call dword [eax + 0x10ef590]
mov ecx, dword [ebp - 0x14]
push eax
push esi
push ebx
lea eax, [ebp - 0x220]
push eax
push edi
call fcn.010497c2
jmp 0x104b657
xor eax, eax
mov esi, eax
jmp 0x104b65d
xor esi, esi
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x24d8]
call sub.MFC42u.dll_CString::CString
mov eax, esi
jmp 0x104bb63
movzx eax, byte [esi + 0x30]
imul eax, eax, 0x14c
push 1
push 0x1000
lea ecx, [ebp - 0x2220]
push ecx
push esi
call dword [eax + 0x10ef470]
push 0x70
call sub.MFC42u.dll_operatornew
pop ecx
mov dword [ebp - 0x14], eax
test eax, eax
mov dword [ebp - 4], 2
je case.0x104b565.6
movzx eax, byte [esi + 0x30]
imul eax, eax, 0x14c
push esi
call dword [eax + 0x10ef590]
mov ecx, dword [ebp - 0x14]
push eax
push esi
push ebx
lea eax, [ebp - 0x2220]
push eax
push edi
call fcn.010497c2
jmp 0x104bb63
movzx eax, byte [esi + 0x30]
imul eax, eax, 0x14c
push 1
push 0x1000
lea ecx, [ebp - 0x2220]
push ecx
push esi
call dword [eax + 0x10ef470]
push 0x50
call sub.MFC42u.dll_operatornew
pop ecx
mov dword [ebp - 0x14], eax
test eax, eax
mov dword [ebp - 4], 3
je case.0x104b565.6
movzx eax, byte [esi + 0x30]
imul eax, eax, 0x14c
push esi
call dword [eax + 0x10ef590]
mov ecx, dword [ebp - 0x14]
push eax
push esi
push ebx
lea eax, [ebp - 0x2220]
push eax
push edi
call fcn.010493e4
jmp 0x104bb63
movzx eax, byte [esi + 0x30]
imul eax, eax, 0x14c
push 1
push 0x1000
lea ecx, [ebp - 0x2220]
push ecx
push esi
call dword [eax + 0x10ef470]
push 0x50
call sub.MFC42u.dll_operatornew
pop ecx
mov dword [ebp - 0x14], eax
test eax, eax
mov dword [ebp - 4], 4
je case.0x104b565.6
movzx eax, byte [esi + 0x30]
imul eax, eax, 0x14c
push esi
call dword [eax + 0x10ef590]
mov ecx, dword [ebp - 0x14]
push eax
push esi
push ebx
lea eax, [ebp - 0x2220]
push eax
push edi
call fcn.01049412
jmp 0x104bb63
cmp dword [ebp + 0x10], 1
jne case.0x104b565.6
movzx eax, byte [esi + 0x30]
imul eax, eax, 0x14c
push 1
push 0x1000
lea ecx, [ebp - 0x2220]
push ecx
push esi
call dword [eax + 0x10ef470]
push 0x50
call sub.MFC42u.dll_operatornew
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
mov dword [ebp - 4], 5
je case.0x104b565.6
push esi
push ebx
lea eax, [ebp - 0x2220]
push eax
call fcn.0104936d
jmp 0x104bb63
movzx eax, byte [esi + 0x30]
imul eax, eax, 0x14c
push 1
push 0x1000
lea ecx, [ebp - 0x2220]
push ecx
push esi
call dword [eax + 0x10ef470]
push 0x50
call sub.MFC42u.dll_operatornew
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
mov dword [ebp - 4], 6
je case.0x104b565.6
push esi
push ebx
lea eax, [ebp - 0x2220]
push eax
call fcn.010496ae
jmp 0x104bb63
movzx eax, byte [esi + 0x30]
imul eax, eax, 0x14c
push 1
push 0x1000
lea ecx, [ebp - 0x2220]
push ecx
push esi
call dword [eax + 0x10ef470]
push 0x50
call sub.MFC42u.dll_operatornew
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
mov dword [ebp - 4], 7
je case.0x104b565.6
push esi
push ebx
lea eax, [ebp - 0x2220]
push eax
call fcn.010496da
jmp 0x104bb63
movzx eax, byte [esi + 0x30]
imul eax, eax, 0x14c
push 1
push 0x1000
lea ecx, [ebp - 0x2220]
push ecx
push esi
call dword [eax + 0x10ef470]
push 0x50
call sub.MFC42u.dll_operatornew
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
mov dword [ebp - 4], 8
je case.0x104b565.6
push esi
push ebx
lea eax, [ebp - 0x2220]
push eax
call fcn.01049706
jmp 0x104bb63
movzx eax, byte [esi + 0x30]
imul eax, eax, 0x14c
push 1
push 0x1000
lea ecx, [ebp - 0x2220]
push ecx
push esi
call dword [eax + 0x10ef470]
push 0x50
call sub.MFC42u.dll_operatornew
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
mov dword [ebp - 4], 9
je case.0x104b565.6
push esi
push ebx
lea eax, [ebp - 0x2220]
push eax
call fcn.01049732
jmp 0x104bb63
movzx eax, byte [esi + 0x30]
imul eax, eax, 0x14c
push 1
push 0x1000
lea ecx, [ebp - 0x2220]
push ecx
push esi
call dword [eax + 0x10ef470]
push 0x50
call sub.MFC42u.dll_operatornew
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
mov dword [ebp - 4], 0xa
je case.0x104b565.6
push esi
push ebx
lea eax, [ebp - 0x2220]
push eax
call fcn.0104975e
jmp 0x104bb63
movzx eax, byte [esi + 0x30]
imul eax, eax, 0x14c
push 1
push 0x1000
lea ecx, [ebp - 0x2220]
push ecx
push esi
call dword [eax + 0x10ef470]
push 0x58
call sub.MFC42u.dll_operatornew
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
mov dword [ebp - 4], 0xb
je case.0x104b565.6
push esi
push ebx
lea eax, [ebp - 0x2220]
push eax
call fcn.01049c35
jmp 0x104bb63
movzx eax, byte [esi + 0x30]
imul eax, eax, 0x14c
push 1
push 0x1000
lea ecx, [ebp - 0x2220]
push ecx
push esi
call dword [eax + 0x10ef470]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xc]
cmp eax, 0x19
push 0x58
jne 0x104ba1f
call sub.MFC42u.dll_operatornew
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
mov dword [ebp - 4], 0xc
je case.0x104b565.6
push esi
push ebx
lea eax, [ebp - 0x2220]
push eax
call fcn.01049c61
jmp 0x104bb63
call sub.MFC42u.dll_operatornew
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
mov dword [ebp - 4], 0xd
je case.0x104b565.6
push esi
push ebx
lea eax, [ebp - 0x2220]
push eax
call fcn.01049c61
jmp 0x104bb63
movzx eax, byte [esi + 0x30]
imul eax, eax, 0x14c
push 1
push 0x1000
lea ecx, [ebp - 0x2220]
push ecx
push esi
call dword [eax + 0x10ef470]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xc]
cmp eax, 0x1a
push 0x58
jne 0x104baa6
call sub.MFC42u.dll_operatornew
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
mov dword [ebp - 4], 0xe
je case.0x104b565.6
push esi
push ebx
lea eax, [ebp - 0x2220]
push eax
call fcn.01049c8d
jmp 0x104bb63
call sub.MFC42u.dll_operatornew
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
mov dword [ebp - 4], 0xf
je case.0x104b565.6
push esi
push ebx
lea eax, [ebp - 0x2220]
push eax
call fcn.01049c8d
jmp 0x104bb63
movzx eax, byte [esi + 0x30]
imul eax, eax, 0x14c
push 1
push 0x1000
lea ecx, [ebp - 0x2220]
push ecx
push esi
call dword [eax + 0x10ef470]
push 0x58
call sub.MFC42u.dll_operatornew
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
mov dword [ebp - 4], 0x10
je case.0x104b565.6
push esi
push ebx
lea eax, [ebp - 0x2220]
push eax
call fcn.01049cb9
jmp 0x104bb63
movzx eax, byte [esi + 0x30]
imul eax, eax, 0x14c
push 1
push 0x1000
lea ecx, [ebp - 0x2220]
push ecx
push esi
call dword [eax + 0x10ef470]
push 0x58
call sub.MFC42u.dll_operatornew
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
mov dword [ebp - 4], 0x11
je case.0x104b565.6
push esi
push ebx
lea eax, [ebp - 0x2220]
push eax
call fcn.01049ce5
jmp 0x104bb63
xor eax, eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
pop ebx
call fcn.01078836
leave
ret 0xc