Function at 0x448d83
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
push ecx
lea ecx, [ebp - 0x54]
call fcn.00425dc3
lea ecx, [ebp + 8]
call fcn.00429ef2
xor ebx, ebx
push 2
pop edi
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x24], ebx
xor esi, esi
mov dword [ebp - 0x40], ebx
jmp 0x448e6c
push 0xffffffffffffffff
lea eax, [ebp + 8]
push eax
push 0x47be80
call fcn.0042c9b5
add esp, 0xc
test al, al
je 0x448ddd
or dword [ebp - 0xc], edi
jmp 0x448e6c
push 0xffffffffffffffff
lea eax, [ebp + 8]
push eax
push 0x47be7c
call fcn.0042c9b5
add esp, 0xc
test al, al
je 0x448dfa
or dword [ebp - 0xc], 1
jmp 0x448e6c
push 0xffffffffffffffff
lea eax, [ebp + 8]
push eax
push 0x478708
call fcn.0042c9b5
add esp, 0xc
test al, al
je 0x448e1a
mov dword [ebp - 0x40], 1
jmp 0x448e6c
push 0xffffffffffffffff
lea eax, [ebp + 8]
push eax
push 0x47be78
call fcn.0042c9b5
add esp, 0xc
test al, al
je 0x448e37
or dword [ebp - 0x24], 0x10
jmp 0x448e6c
push 0xffffffffffffffff
lea eax, [ebp + 8]
push eax
push str._O:N
call fcn.0042c9b5
add esp, 0xc
test al, al
je 0x448e52
push 0x20
jmp 0x448e6b
push 0xffffffffffffffff
lea eax, [ebp + 8]
push eax
push str._O:_N
call fcn.0042c9b5
add esp, 0xc
test al, al
je 0x448e78
push 0x60
pop esi
mov eax, dword [ebp + 8]
cmp word [eax], bx
jne 0x448dbe
or dword [ebp - 0x24], esi
lea ecx, [ebp - 0x3c]
call fcn.0042460b
mov esi, 0x4758e0
push esi
lea ecx, [ebp - 0x20]
call fcn.0042a183
push esi
lea ecx, [ebp - 8]
call fcn.0042a183
push esi
lea ecx, [ebp - 0x14]
call fcn.0042a183
push 1
push 0x2c
pop esi
push esi
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x54]
call fcn.00443613
push ebx
lea ecx, [ebp - 0x3c]
push ecx
push eax
call fcn.0042df66
mov eax, dword [ebp - 0x3c]
add esp, 0xc
cmp dword [ebp - 0xc], ebx
mov dword [ebp - 0x18], eax
jne 0x448f22
movzx eax, word [eax]
cmp ax, bx
je 0x448f22
xor edx, edx
mov ecx, eax
inc edx
mov eax, ecx
call fcn.004213da
test al, al
jne 0x448f22
cmp cx, 0x40
jne 0x448ef1
mov dword [ebp - 0x34], edx
jmp 0x448f14
cmp cx, 0x24
jne 0x448f00
mov dword [ebp - 0x34], 3
jmp 0x448f14
cmp cx, 0x5c
jne 0x448f0b
or dword [ebp - 0x10], edx
jmp 0x448f14
cmp cx, 0x21
jne 0x448f22
or dword [ebp - 0x10], edi
add dword [ebp - 0x18], edi
mov eax, dword [ebp - 0x18]
mov cx, word [eax]
cmp cx, bx
jne 0x448edb
lea ecx, [ebp - 0x18]
call fcn.00429ef2
cmp dword [ebp - 0x10], ebx
je 0x448f3e
mov eax, dword [ebp - 0x18]
jmp 0x448f36
add eax, edi
cmp word [eax], 0x5c
je 0x448f34
jmp 0x448f56
cmp dword [ebp - 0xc], ebx
jne 0x448f53
lea eax, [ebp - 8]
push eax
push dword [ebp - 0x18]
call fcn.0040c061
pop ecx
pop ecx
jmp 0x448f5f
mov eax, dword [ebp - 0x18]
push eax
lea ecx, [ebp - 8]
call fcn.0042a1b7
mov eax, dword [ebp + 8]
cmp word [eax], si
jne 0x448f87
add dword [ebp + 8], edi
push 1
push esi
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x54]
call fcn.00443613
push ebx
lea ecx, [ebp - 0x20]
push ecx
push eax
call fcn.0042df66
add esp, 0xc
cmp dword [ebp - 0xc], ebx
jne 0x448fb4
mov eax, dword [ebp + 8]
cmp word [eax], si
jne 0x448fb4
add dword [ebp + 8], edi
push esi
lea eax, [ebp - 0x2c]
push eax
push 1
push esi
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x54]
call fcn.00443613
push eax
call fcn.0042e1ad
add esp, 0xc
cmp dword [ebp - 0x2c], ebx
jg 0x448fc0
mov dword [ebp - 0x2c], 0xfffffff8
mov eax, dword [ebp + 8]
cmp word [eax], si
je 0x448fd0
xor esi, esi
inc esi
jmp 0x4493b2
add dword [ebp + 8], edi
lea ecx, [ebp + 8]
call fcn.00429ef2
push 0xffffffffffffffff
push dword [ebp + 8]
lea ecx, [ebp - 0x14]
call fcn.00409ba0
mov edx, dword [ebp + 0x10]
cmp edx, ebx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x30], ebx
je 0x448ffc
mov eax, dword [edx]
jmp 0x448ffe
xor eax, eax
cmp word [ecx], bx
mov dword [ebp - 0x28], eax
jne 0x44901b
cmp eax, ebx
je 0x44901b
cmp word [eax], 0x7b
jne 0x44901b
mov ecx, dword [ebp - 4]
push ebx
push ebx
push edx
call fcn.00432713
push 0x32a
lea ecx, [ebp - 0x44]
call fcn.0042465d
mov eax, dword [ebp - 4]
and byte [eax + 0x44], 0x8b
mov ecx, dword [ebp - 0x38]
mov edi, dword [ebp - 0x44]
mov al, byte [eax + 0x44]
mov dword [ebp - 0x1c], ebx
cmp word [ecx], bx
lea esi, [edi + 4]
mov dword [ebp + 8], ebx
mov dword [ebp + 0x10], ebx
mov dword [ebp - 0x48], ebx
jne 0x449060
mov ecx, dword [ebp - 0x28]
cmp ecx, ebx
je 0x449060
cmp word [ecx], 0x7b
mov dword [ebp - 0x18], 0x100
je 0x449063
mov dword [ebp - 0x18], ebx
mov ecx, dword [ebp - 0x20]
cmp word [ecx], bx
je 0x44907f
mov ecx, dword [ebp - 0x14]
cmp word [ecx], bx
jne 0x44907f
cmp dword [ebp - 0x18], ebx
mov dword [ebp - 0x38], 1
je 0x449082
mov dword [ebp - 0x38], ebx
test byte [ebp - 0xc], 2
je 0x449173
mov esi, 0x48b5d4
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp - 4]
push 0xffffffffffffffff
push ebx
push dword [ebp - 8]
call fcn.0040e8be
push esi
mov edi, eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp edi, ebx
jne 0x4490bf
mov dword [ebp - 0x48], 2
jmp 0x449384
push dword [edi]
lea ecx, [ebp - 0x24]
call fcn.0042a183
mov esi, dword [ebp - 0x24]
mov dword [ebp + 8], esi
mov dword [ebp - 0x34], ebx
jmp 0x44915a
cmp word [esi], bx
je 0x449166
lea eax, [ebp + 8]
mov dword [ebp - 0x40], esi
call fcn.0040e4de
mov esi, dword [ebp + 8]
push dword [ebp - 0x40]
mov di, word [esi]
mov ecx, dword [ebp - 4]
mov word [esi], bx
push dword [ebp - 0x20]
call fcn.00428e1b
cmp di, 0xd
jne 0x449114
cmp word [esi + 2], 0xa
jne 0x449119
add esi, 4
jmp 0x44911b
cmp di, bx
je 0x44911e
inc esi
inc esi
mov dword [ebp + 8], esi
inc dword [ebp + 0x10]
cmp dword [ebp - 0x18], ebx
je 0x449146
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 4]
add eax, 2
push 0x4758e0
mov dword [ebp - 0x30], eax
push ebx
lea eax, [ebp - 0x30]
push eax
push dword [ebp + 0xc]
call fcn.0043fb88
jmp 0x44915a
mov eax, dword [ebp - 0x14]
cmp word [eax], bx
je 0x44915a
mov ecx, dword [ebp - 4]
push ebx
push ebx
push ebx
push eax
call fcn.0041e84e
mov eax, dword [ebp - 4]
cmp byte [eax + 0x44], bl
je 0x4490d7
lea ecx, [ebp - 0x34]
call fcn.00424686
jmp 0x449208
cmp dword [ebp - 0xc], 1
jne 0x449210
cmp al, bl
mov ecx, dword [ebp - 8]
mov dword [ebp + 8], ecx
mov dword [ebp - 0x24], ebx
jne 0x449208
mov edi, dword [ebp - 4]
jmp 0x449192
mov ecx, dword [ebp + 8]
cmp word [ecx], bx
je 0x449208
lea eax, [ebp + 8]
push eax
mov esi, ecx
call fcn.00403953
mov eax, dword [ebp + 8]
pop ecx
sub eax, esi
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x24]
call fcn.00409ba0
lea ecx, [ebp + 8]
call fcn.00429ef2
push dword [ebp - 0x24]
mov ecx, edi
push dword [ebp - 0x20]
call fcn.00428e1b
inc dword [ebp + 0x10]
cmp dword [ebp - 0x18], ebx
je 0x4491f0
mov eax, dword [ebp - 0x28]
add eax, 2
push 0x4758e0
mov dword [ebp - 0x30], eax
push ebx
lea eax, [ebp - 0x30]
push eax
push dword [ebp + 0xc]
mov ecx, edi
call fcn.0043fb88
jmp 0x449203
mov eax, dword [ebp - 0x14]
cmp word [eax], bx
je 0x449203
push ebx
push ebx
push ebx
push eax
mov ecx, edi
call fcn.0041e84e
cmp byte [edi + 0x44], bl
je 0x44918f
lea ecx, [ebp - 0x24]
jmp 0x44937f
push dword [ebp - 8]
call fcn.00412d51
pop ecx
push eax
lea ecx, [ebp - 8]
call fcn.0042a1b7
mov ecx, dword [ebp - 8]
cmp word [ecx], bx
je 0x449384
cmp dword [ebp - 0x10], ebx
je 0x44928a
mov word [esi + 2], bx
mov word [esi], bx
push esi
mov word [edi + 2], bx
push 0x324
mov word [edi], bx
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
mov al, byte [ebp - 0x10]
and al, 2
cmp word [esi], bx
mov dword [ebp - 0xc], esi
mov byte [ebp + 0xb], al
mov edi, esi
je 0x449272
push edi
mov dword [ebp - 0xc], edi
call fcn.0046176a
lea edi, [edi + eax*2 + 2]
cmp word [edi], bx
pop ecx
jne 0x44925f
cmp byte [ebp + 0xb], bl
je 0x449282
mov eax, dword [ebp - 0xc]
mov dword [ebp + 8], eax
jmp 0x449327
mov dword [ebp + 8], esi
jmp 0x449327
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 8], eax
cmp dword [ebp - 0x18], ebx
jne 0x4492a9
mov eax, dword [ebp - 0x14]
cmp word [eax], bx
jne 0x4492a9
cmp dword [ebp - 0x38], ebx
je 0x449384
cmp dword [ebp - 0x40], ebx
je 0x4492cd
mov ecx, dword [ebp - 0x1c]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x4492cd
cmp word [ecx + 2], 0x3a
jne 0x4492cd
push eax
call fcn.004612e9
test eax, eax
pop ecx
je 0x449322
lea ecx, [ebp - 0xc]
call fcn.0042460b
push ebx
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0x1c]
call fcn.0042921d
mov edi, dword [ebp - 4]
add esp, 0xc
lea eax, [ebp - 0x2c]
push eax
push dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
or eax, dword [ebp - 0x24]
mov ecx, edi
or eax, dword [ebp - 0x34]
push eax
push dword [ebp - 0x28]
push dword [ebp + 0xc]
push dword [ebp - 0xc]
push dword [ebp - 0x20]
call fcn.0044898a
add dword [ebp + 0x10], eax
test byte [edi + 0x44], 0x67
jne 0x44937c
cmp dword [ebp - 0x2c], ebx
je 0x44937c
lea ecx, [ebp - 0xc]
call fcn.00424686
cmp dword [ebp - 0x10], ebx
je 0x449384
mov eax, dword [ebp + 8]
cmp word [eax], bx
je 0x449384
push 0xffffffffffffffff
mov edi, eax
push edi
lea ecx, [ebp - 0x1c]
call fcn.00409ba0
push dword [ebp - 8]
lea ecx, [ebp - 0x1c]
call fcn.004246c0
test byte [ebp - 0x10], 2
je 0x449369
dec edi
dec edi
jmp 0x44935d
add edi, 0xfffffffe
cmp word [edi], bx
je 0x449293
cmp edi, esi
mov dword [ebp + 8], edi
ja 0x449351
jmp 0x449293
push edi
call fcn.0046176a
lea eax, [edi + eax*2 + 2]
pop ecx
mov dword [ebp + 8], eax
jmp 0x449293
lea ecx, [ebp - 0xc]
call fcn.00424686
mov eax, dword [ebp - 4]
and byte [eax + 0x44], 0x8b
cmp dword [ebp - 0x38], ebx
je 0x44939f
push dword [ebp - 0x20]
push dword [ebp + 0x10]
push eax
call fcn.0042d52d
add esp, 0xc
lea ecx, [ebp - 0x1c]
call fcn.00424686
lea ecx, [ebp - 0x44]
call fcn.00424686
mov esi, dword [ebp - 0x48]
lea ecx, [ebp - 0x14]
call fcn.00424686
lea ecx, [ebp - 8]
call fcn.00424686
lea ecx, [ebp - 0x20]
call fcn.00424686
lea ecx, [ebp - 0x3c]
call fcn.00424686
lea ecx, [ebp - 0x54]
call fcn.00424686
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 0xc