Function at 0x447893
Capabilities:
Get disk information
Get file system object information
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x4d4
or dword [esp + 8], 0xffffffff
push ebx
push ebp
push esi
mov esi, dword [esp + 0x4e8]
xor ebx, ebx
mov dword [esp + 0x10], ebx
push edi
mov edi, dword [esp + 0x4e8]
mov ebp, dword [edi + 0x10]
mov dword [esp + 0x10], ebp
test esi, esi
jne 0x4478c6
mov esi, 0x489028
push 0x34
lea eax, [esp + 0x20]
push ebx
push eax
call sub.MSVCRT.dll_memset
push 0x28
lea eax, [esp + 0x60]
push ebx
push eax
call sub.MSVCRT.dll_memset
mov eax, dword [ebp + 0x114]
add esp, 0x18
mov ebx, dword [sym.imp.USER32.DLL_SendMessageA]
test eax, eax
je 0x4478fc
push 0
push 0
push 0x10
push eax
call ebx
test esi, esi
je 0x447a0b
cmp byte [esi], 0
je 0x447a0b
push 0x489094
push esi
call sub.MSVCRT.dll_strcmp
pop ecx
pop ecx
test eax, eax
je 0x447a0b
push 0x5c
push esi
call sub.MSVCRT.dll_strchr
pop ecx
pop ecx
push esi
test eax, eax
jne 0x44796a
lea eax, [ebp + 0xc]
push eax
call sub.MSVCRT.dll_strcpy
pop ecx
pop ecx
push 0
push 9
push 0x110a
push dword [edi]
mov byte [esp + 0x88], 0
call ebx
test eax, eax
je 0x447961
lea ecx, [esp + 0x78]
push ecx
push eax
push ebp
call fcn.0044771b
mov al, byte [esp + 0x78]
jmp 0x447a11
call sub.MSVCRT.dll_strlen
pop ecx
cmp byte [eax + esi - 1], 0x5c
lea eax, [esp + 0x78]
jne 0x44799f
push esi
push eax
call sub.MSVCRT.dll_strcpy
mov al, byte [esp + 0x80]
pop ecx
cmp al, 0x61
movsx eax, al
pop ecx
jl 0x447995
sub eax, 0x20
mov esi, dword [esp + 0x14]
mov byte [esp + 0x78], al
jmp 0x447a14
push 0x104
push 0
push eax
call sub.MSVCRT.dll_memset
push esi
call sub.MSVCRT.dll_strlen
mov ebp, eax
add esp, 0x10
test ebp, ebp
js 0x4479c4
cmp byte [esi + ebp], 0x5c
je 0x4479ca
dec ebp
jns 0x4479bb
mov ebp, dword [esp + 0x10]
jmp 0x447961
lea eax, [ebp + 1]
push eax
lea eax, [esp + 0x7c]
push esi
push eax
call sub.MSVCRT.dll_memcpy
mov al, byte [esp + 0x84]
add esp, 0xc
cmp al, 0x61
movsx eax, al
jl 0x4479ed
sub eax, 0x20
mov byte [esp + 0x78], al
lea eax, [ebp + 1]
mov ebp, dword [esp + 0x10]
add eax, esi
push eax
lea eax, [ebp + 0xc]
push eax
call sub.MSVCRT.dll_strcpy
pop ecx
pop ecx
jmp 0x447961
xor al, al
mov byte [esp + 0x78], al
xor esi, esi
inc esi
test al, al
je 0x447a7b
movsx eax, al
sub eax, 0x41
mov dword [esp + 0x18], eax
lea eax, [esp + 0x7b]
push eax
call sub.MSVCRT.dll_strlen
inc eax
push eax
lea eax, [esp + 0x83]
push eax
lea eax, [esp + 0x84]
push eax
call sub.MSVCRT.dll_memmove
lea eax, [esp + 0x88]
push eax
call sub.MSVCRT.dll_strlen
mov byte [esp + eax + 0x8d], 0
lea eax, [esp + 0x8c]
push eax
call sub.MSVCRT.dll_strlen
add esp, 0x18
test eax, eax
js 0x447a7b
cmp byte [esp + eax + 0x78], 0x5c
jne 0x447a78
mov byte [esp + eax + 0x78], 0
dec eax
jns 0x447a6c
test esi, esi
je 0x447c34
mov esi, 0xffff0000
push esi
push 0
push 0x1101
push dword [edi]
call ebx
mov eax, dword [0x49fe68]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
lea eax, [esp + 0x1c]
push eax
push 0
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
xor esi, esi
push 0x1100
push dword [edi]
inc esi
mov dword [esp + 0x34], 0x67
mov dword [esp + 0x44], 0x49fd60
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], 0xfffb
call ebx
mov dword [ebp + 0x110], eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x17c]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov dword [esp + 0x38], eax
mov dword [esp + 0x24], 0xffff0002
call esi
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x280]
push 0x48a380
push eax
call sub.MSVCRT.dll_strcpy
mov edx, dword [esp + 0x18]
pop ecx
pop ecx
xor ecx, ecx
mov dword [esp + 0x14], ecx
xor eax, eax
inc eax
shl eax, cl
test edx, eax
je 0x447bd2
push 0x4001
lea eax, [ecx + 0x41]
mov dword [esp + 0x4c], ecx
mov byte [esp + 0x284], al
xor edx, edx
push 0x160
lea eax, [esp + 0x38c]
mov byte [esp + 0x184], dl
push eax
push edx
lea eax, [esp + 0x290]
mov byte [esp + 0x4a4], dl
push eax
call dword [sym.imp.SHELL32.DLL_SHGetFileInfoA]
mov eax, dword [esp + 0x388]
push 0x200
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
lea eax, [esp + 0x388]
push 0x160
push eax
push 0
lea eax, [esp + 0x290]
push eax
call dword [sym.imp.SHELL32.DLL_SHGetFileInfoA]
lea eax, [esp + 0x390]
push eax
lea eax, [esp + 0x180]
push eax
call sub.MSVCRT.dll_strcpy
pop ecx
pop ecx
lea eax, [esp + 0x1c]
push eax
push 0
push 0x1100
push dword [edi]
call ebx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, 0x1f
jle 0x447b26
push 0
call esi
cmp dword [0x49b080], 0
je 0x447c23
test dword [ebp + 8], 0x200
jne 0x447c23
mov eax, dword [0x49fe64]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
lea eax, [esp + 0x1c]
push eax
push 0
push 0x1100
push dword [edi]
mov dword [esp + 0x44], 0x49fb58
mov dword [esp + 0x58], 0xfd
call ebx
push dword [ebp + 0x110]
mov eax, 0x1102
push eax
push eax
push dword [edi]
call ebx
cmp dword [esp + 0x18], 0xffffffff
je 0x447d7f
mov dword [esp + 0x50], 0x14
push dword [ebp + 0x110]
push 4
push 0x110a
push dword [edi]
call ebx
mov esi, eax
test esi, esi
je 0x447d7f
mov ebp, dword [esp + 0x18]
lea eax, [esp + 0x50]
mov dword [esp + 0x54], esi
push eax
push 0
push 0x110c
push dword [edi]
call ebx
movzx eax, byte [esp + 0x74]
cmp eax, ebp
je 0x447c95
push esi
push 1
push 0x110a
push dword [edi]
call ebx
mov esi, eax
test esi, esi
jne 0x447c66
test esi, esi
je 0x447d7f
push esi
mov eax, 0x1102
push eax
push eax
push dword [edi]
call ebx
cmp byte [esp + 0x78], 0
lea ebp, [esp + 0x78]
mov dword [esp + 0x50], 0x15
mov dword [esp + 0x64], 0x104
je 0x447d67
push esi
push 4
push 0x110a
push dword [edi]
call ebx
mov esi, eax
test esi, esi
je 0x447d7f
lea eax, [esp + 0x17c]
mov dword [esp + 0x54], esi
mov dword [esp + 0x60], eax
lea eax, [esp + 0x50]
push eax
push 0
push 0x110c
push dword [edi]
call ebx
cmp byte [esp + 0x74], 0xfc
jne 0x447d31
lea eax, [esp + 0x17c]
cmp dword [esp + 0x60], eax
je 0x447d1d
push dword [esp + 0x60]
push eax
call sub.MSVCRT.dll_strcpy
pop ecx
pop ecx
lea eax, [esp + 0x17c]
push eax
push ebp
call sub.MSVCRT.dll__stricmp
pop ecx
pop ecx
test eax, eax
je 0x447d43
push esi
push 1
push 0x110a
push dword [edi]
call ebx
mov esi, eax
test esi, esi
jne 0x447cde
test esi, esi
je 0x447d7f
push esi
mov eax, 0x1102
push eax
push eax
push dword [edi]
call ebx
push ebp
call sub.MSVCRT.dll_strlen
inc ebp
add ebp, eax
pop ecx
cmp byte [ebp], 0
jne 0x447cc8
push esi
push 0
push 0x1114
push dword [edi]
call ebx
push esi
push 9
push 0x110b
push dword [edi]
call ebx
push 0
push edi
call fcn.00447f96
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4d4
ret 8