Function at 0x480d1a
Capabilities:
Get disk information

Disassembly:
push 0x448
mov eax, 0x44e57b
call fcn.0043bc61
mov edi, ecx
mov dword [ebp - 0x450], edi
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x454], eax
mov dword [ebp - 0x18], 0x3a0020
and dword [eax], 0
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x14], 0x5c
mov word [ebp - 0x18], si
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetDriveTypeW]
cmp eax, 3
je 0x480d68
mov ebx, 0x80004001
jmp 0x480da6
mov dx, word [edi + 0x3c]
lea eax, [ebp - 0x428]
push ecx
push eax
push dword [edi + 0x14]
mov ecx, esi
call fcn.00471e1d
mov ebx, eax
test ebx, ebx
js 0x480da6
mov edx, dword [edi + 0x10]
lea ecx, [ebp - 0x428]
call fcn.00471a00
mov ebx, eax
cmp ebx, 1
jne 0x480d9d
xor ebx, ebx
jmp 0x480da6
test ebx, ebx
js 0x480da6
mov ebx, 0x80004005
and dword [ebp - 0x43c], 0
and dword [ebp - 4], 0
test ebx, ebx
js 0x480dc2
lea ecx, [ebp - 0x43c]
call fcn.0048e576
mov ebx, eax
and dword [ebp - 0x42c], 0
mov byte [ebp - 4], 1
test ebx, ebx
js 0x4810e9
mov ecx, dword [ebp - 0x43c]
lea eax, [ebp - 0x42c]
push eax
lea edx, [ebp - 0x428]
call fcn.0048e481
mov ebx, eax
cmp ebx, 1
jne 0x481078
push 0x200
lea eax, [ebp - 0x218]
mov dword [ebp - 0x220], 0x3a0020
push 0
push eax
mov dword [ebp - 0x21c], 0x5c
call sub.msvcrt.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x220]
mov edx, 0x104
cmp word [edi + 0x3c], si
jne 0x480e3f
push 0x412740
call fcn.00422867
jmp 0x480e50
push 0x40e770
mov word [ebp - 0x220], si
call fcn.00420c07
mov ebx, eax
test ebx, ebx
js 0x480e80
push 0
lea eax, [ebp - 0x220]
push eax
push 0
call dword [sym.imp.api_ms_win_shell_shdirectory_l1_1_0.dll_Ordinal_290]
test eax, eax
je 0x480e7e
cmp eax, 0x50
je 0x480e7e
cmp eax, 0xb7
je 0x480e7e
mov ebx, 0x80070003
jmp 0x480e80
xor ebx, ebx
and dword [ebp - 0x434], 0
mov byte [ebp - 4], 2
test ebx, ebx
js 0x480ea2
lea edx, [ebp - 0x428]
lea ecx, [ebp - 0x434]
call fcn.0048ebcc
mov ebx, eax
xor edi, edi
mov dword [ebp - 0x430], edi
mov byte [ebp - 4], 3
test ebx, ebx
js 0x480ecb
lea edx, [ebp - 0x220]
lea ecx, [ebp - 0x430]
call fcn.0048ebcc
mov edi, dword [ebp - 0x430]
mov ebx, eax
xor esi, esi
mov dword [ebp - 0x440], esi
mov byte [ebp - 4], 4
test ebx, ebx
js 0x480f1d
mov edx, 0x40ec3c
lea ecx, [ebp - 0x440]
call fcn.0048ebcc
mov esi, dword [ebp - 0x440]
mov ebx, eax
test ebx, ebx
js 0x480f1d
mov eax, dword [ebp - 0x43c]
lea ecx, [ebp - 0x42c]
push ecx
push esi
push edi
mov ebx, dword [eax]
push dword [ebp - 0x434]
push eax
mov ecx, dword [ebx + 0x28]
call dword [0x4a3670]
call dword [ebx + 0x28]
mov ebx, eax
xor eax, eax
mov dword [ebp - 0x14], eax
test ebx, ebx
js 0x481054
xor edi, edi
cmp edi, 0x24
jae 0x48104e
cmp eax, 2
je 0x48103f
and dword [ebp - 0x444], 0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x444]
mov edx, dword [edi + 0x405590]
call fcn.0048ebcc
mov edx, eax
xor eax, eax
mov dword [ebp - 0x438], eax
mov byte [ebp - 4], 6
test edx, edx
js 0x480ffe
mov eax, dword [ebp - 0x42c]
lea edx, [ebp - 0x438]
push edx
push eax
mov ecx, dword [eax]
mov ebx, dword [ecx + 0x48]
mov ecx, ebx
call dword [0x4a3670]
call ebx
mov edx, eax
test edx, edx
js 0x480ff8
and dword [ebp - 0x44c], 0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x44c]
mov eax, dword [ebp - 0x438]
push ecx
push dword [ebp - 0x444]
mov ebx, dword [eax]
push eax
mov ecx, dword [ebx + 0x28]
call dword [0x4a3670]
call dword [ebx + 0x28]
mov edx, eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x44c]
mov dword [ebp - 0x448], edx
test eax, eax
je 0x480fec
mov ecx, dword [eax]
push eax
mov ebx, dword [ecx + 8]
mov ecx, ebx
call dword [0x4a3670]
call ebx
mov edx, dword [ebp - 0x448]
test edx, edx
js 0x480ff8
mov eax, dword [ebp - 0x438]
jmp 0x481012
mov eax, dword [ebp - 0x438]
mov ecx, dword [edi + 0x405594]
neg ecx
sbb ecx, ecx
not ecx
and ecx, edx
mov dword [ebp - 0x448], ecx
mov byte [ebp - 4], 5
test eax, eax
je 0x48102a
mov ecx, dword [eax]
push eax
mov ebx, dword [ecx + 8]
mov ecx, ebx
call dword [0x4a3670]
call ebx
push dword [ebp - 0x444]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ebx, dword [ebp - 0x448]
mov eax, dword [ebp - 0x14]
inc eax
add edi, 0xc
mov dword [ebp - 0x14], eax
test ebx, ebx
jns 0x480f2c
mov edi, dword [ebp - 0x430]
push esi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
push edi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov byte [ebp - 4], 1
push dword [ebp - 0x434]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov edi, dword [ebp - 0x450]
test ebx, ebx
js 0x4810e9
mov eax, dword [ebp - 0x42c]
test eax, eax
jne 0x481091
call fcn.004917af
mov eax, dword [ebp - 0x42c]
and dword [ebp - 0x434], 0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x434]
mov esi, dword [eax]
push ecx
push 0x4075cc
push eax
mov ecx, dword [esi]
call dword [0x4a3670]
call dword [esi]
mov ebx, eax
test ebx, ebx
js 0x4810cb
mov edx, dword [edi + 0x10]
mov ecx, dword [ebp - 0x434]
call fcn.0048e01a
mov ebx, eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x434]
test eax, eax
je 0x4810e9
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x4a3670]
call esi
xor esi, esi
mov dword [ebp - 0x430], esi
mov byte [ebp - 4], 9
test ebx, ebx
js 0x4811aa
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x428]
push eax
lea eax, [ebp - 0x430]
mov ecx, edi
push eax
push esi
call fcn.00481b6f
mov ebx, eax
test ebx, ebx
js 0x4811a4
cmp word [edi + 0x3c], si
mov esi, dword [ebp - 0x430]
mov ecx, esi
sete dl
call fcn.0048de9e
mov ebx, eax
test ebx, ebx
js 0x4811aa
mov ecx, dword [ebp - 0x454]
mov eax, esi
xor esi, esi
mov dword [ecx], eax
mov byte [ebp - 4], 1
test esi, esi
je 0x48115e
mov eax, dword [esi]
push esi
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x4a3670]
call esi
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x42c]
test eax, eax
je 0x48117c
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x4a3670]
call esi
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x43c]
test eax, eax
je 0x48119a
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x4a3670]
call esi
mov eax, ebx
call fcn.0043bc10
ret 0xc
mov esi, dword [ebp - 0x430]
mov eax, dword [ebp - 0x42c]
test eax, eax
je 0x4811be
mov edx, dword [edi + 0x10]
mov ecx, eax
call fcn.0048e2a9
test esi, esi
je 0x481146
xor ecx, ecx
cmp dword [edi + 0x30], ecx
jbe 0x481146
cmp ecx, dword [edi + 0x30]
jae 0x4811f4
mov eax, dword [edi + 0x2c]
cmp dword [eax + ecx*4], esi
je 0x4811e5
inc ecx
cmp ecx, dword [edi + 0x30]
jb 0x4811d2
jmp 0x481146
push ecx
push ecx
lea ecx, [edi + 0x2c]
call fcn.00481d76
jmp 0x481146
mov ecx, 0x80070057
call fcn.0045fefb
int3