Function at 0x4854a0
Capabilities:
Get disk information
Get disk size

Disassembly:
push 0xffffffffffffffff
push 0x4ebbd7
mov eax, dword fs:[0]
push eax
mov eax, 0x14e8
call fcn.004c3aa0
mov eax, dword [0x670f1c]
xor eax, esp
mov dword [esp + 0x14e4], eax
push ebp
push esi
push edi
mov eax, dword [0x670f1c]
xor eax, esp
push eax
lea eax, [esp + 0x14f8]
mov dword fs:[0], eax
mov ebp, ecx
cmp dword [ebp + 0x198aa], 8
jb 0x4854f1
mov eax, dword [ebp + 0x19896]
jmp 0x4854f7
lea eax, [ebp + 0x19896]
push 0x100
lea ecx, [esp + 0x6ec]
push ecx
push 0x100
lea edx, [esp + 0x8f4]
push edx
push 0x100
lea ecx, [esp + 0x4fc]
push ecx
push 0x105
lea edx, [esp + 0xec]
push edx
push eax
call fcn.004c5c11
push 0x5048b4
lea eax, [esp + 0xf8]
push 0x104
push eax
call fcn.004c5e24
add esp, 0x30
lea ecx, [esp + 0xd0]
push ecx
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 5
jne 0x48559a
push 0x505b48
lea edx, [ebp + 0x198ca]
push 0x200
push edx
call fcn.004c0258
push 0x505ba0
mov word [ebp + 0x19cca], 9
push 2
add ebp, 0x192ac
push ebp
call fcn.00418e80
add esp, 0x18
xor al, al
jmp 0x485b85
xor esi, esi
cmp dword [ebp + 0x19370], 2
jne 0x48560c
push 0x20a
lea eax, [esp + 0x2e0]
push eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x2c]
push eax
push 0x20a
lea ecx, [esp + 0xb00]
push ecx
lea edx, [esp + 0xec]
push edx
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
mov esi, eax
test esi, esi
je 0x48560c
test dword [esp + 0x10], 0x80000
je 0x48560c
push 0x505c00
lea eax, [ebp + 0x198ca]
push 0x200
push eax
call fcn.004c0258
push 0x505c50
jmp 0x485579
push 0
push 0
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0xdc]
push edx
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
jne 0x4856ae
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 3
jne 0x485672
push 0x505cb0
lea eax, [ebp + 0x192ac]
push 2
push eax
call fcn.00418e80
push 0x505d28
lea ecx, [ebp + 0x198ca]
push 0x200
push ecx
call fcn.004c0258
add esp, 0x18
mov word [ebp + 0x19cca], 5
xor al, al
jmp 0x485b85
push 0x505d80
lea edx, [ebp + 0x192ac]
push 2
push edx
call fcn.00418e80
push 0x505dd0
lea eax, [ebp + 0x198ca]
push 0x200
push eax
call fcn.004c0258
add esp, 0x18
mov word [ebp + 0x19cca], 5
xor al, al
jmp 0x485b85
mov edi, dword [esp + 0x150c]
cmp edi, dword [esp + 0x18]
jb 0x485728
ja 0x4856ca
mov ecx, dword [esp + 0x1508]
cmp ecx, dword [esp + 0x14]
jb 0x485728
lea edx, [esp + 0xd0]
push edx
push 0x505e20
lea eax, [esp + 0xcfc]
push 0x400
push eax
call fcn.004c678a
lea ecx, [esp + 0xd04]
push ecx
lea edx, [ebp + 0x198ca]
push 0x200
push edx
call fcn.004c0258
push 0x505ea0
mov word [ebp + 0x19cca], 3
push 2
add ebp, 0x192ac
push ebp
call fcn.00418e80
add esp, 0x28
xor al, al
jmp 0x485b85
mov ecx, 0x505ef0
lea eax, [esp + 0x2dc]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x48575a
test dx, dx
je 0x485756
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x48575a
add eax, 4
add ecx, 4
test dx, dx
jne 0x485734
xor eax, eax
jmp 0x48575f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x48579f
mov ecx, 0x504b2c
lea eax, [esp + 0x2dc]
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x485796
test dx, dx
je 0x485792
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x485796
add eax, 4
add ecx, 4
test dx, dx
jne 0x485770
xor eax, eax
jmp 0x48579b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4857ba
lea eax, [ebp + 0x192ac]
push 0x505ef8
push eax
call fcn.00418e60
add esp, 8
mov byte [ebp + 0x19cd7], 1
test edi, edi
ja 0x4857cf
cmp dword [esp + 0x1508], 0x80000000
jb 0x4858e5
cmp dword [ebp + 0x19370], 2
jne 0x4858bc
test esi, esi
je 0x4858e5
mov ecx, 0x505f54
lea eax, [esp + 0x2dc]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x485816
test dx, dx
je 0x485812
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x485816
add eax, 4
add ecx, 4
test dx, dx
jne 0x4857f0
xor eax, eax
jmp 0x48581b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x485848
push 0x505f60
lea ecx, [ebp + 0x198ca]
push 0x200
push ecx
call fcn.004c0258
mov word [ebp + 0x19cca], 4
push 0x506000
jmp 0x485582
mov ecx, 0x504cf4
lea eax, [esp + 0x2dc]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x48587a
test dx, dx
je 0x485876
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x48587a
add eax, 4
add ecx, 4
test dx, dx
jne 0x485854
xor eax, eax
jmp 0x48587f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4858e5
cmp edi, 1
jb 0x4858e5
ja 0x485893
cmp dword [esp + 0x1508], eax
jb 0x4858e5
push 0x506080
lea edx, [ebp + 0x198ca]
push 0x200
push edx
call fcn.004c0258
mov word [ebp + 0x19cca], 4
push 0x506140
jmp 0x485582
push 0x5061c8
lea eax, [ebp + 0x198ca]
push 0x200
push eax
call fcn.004c0258
mov word [ebp + 0x19cca], 4
push 0x506270
jmp 0x485582
lea eax, [esp + 0xd0]
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4858f0
sub eax, edx
sar eax, 1
mov edx, eax
lea eax, [esp + 0x4e8]
lea esi, [eax + 2]
jmp 0x485910
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x485910
sub eax, esi
sar eax, 1
add eax, edx
cmp eax, 0x100
jb 0x485951
push 0x5062f0
lea ecx, [ebp + 0x198ca]
push 0x200
push ecx
call fcn.004c0258
mov word [ebp + 0x19cca], 6
push 0x506348
jmp 0x485582
mov esi, 0x104
cmp dword [ebp + 0x198c2], esi
jb 0x485974
push 0xffffffffffffffff
push 0
lea eax, [ebp + 0x19892]
push eax
lea ecx, [ebp + 0x198ae]
call fcn.00401640
cmp dword [ebp + 0x198a6], esi
jb 0x485b83
cmp dword [ebp + 0x198aa], 8
jb 0x485991
mov eax, dword [ebp + 0x19896]
jmp 0x485997
lea eax, [ebp + 0x19896]
lea edx, [esp + 0x6e8]
push edx
lea ecx, [esp + 0x8ec]
push ecx
lea edx, [esp + 0x4f0]
push edx
lea ecx, [esp + 0xdc]
push ecx
push eax
call fcn.004401a0
lea eax, [esp + 0xe4]
add esp, 0x14
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4859d0
sub eax, edx
sar eax, 1
mov edi, eax
lea eax, [esp + 0x4e8]
lea edx, [eax + 2]
jmp 0x4859f0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4859f0
sub eax, edx
sar eax, 1
mov ecx, eax
lea eax, [esp + 0x6e8]
lea edx, [eax + 2]
jmp 0x485a10
mov si, word [eax]
add eax, 2
test si, si
jne 0x485a10
sub eax, edx
sar eax, 1
lea esi, [eax + ecx]
lea edx, [esp + 0x8e8]
push edx
lea ecx, [esp + 0xb8]
add esi, edi
call fcn.00401430
mov eax, 0x104
sub eax, esi
push eax
push 0
lea ecx, [esp + 0x30]
push ecx
lea ecx, [esp + 0xc0]
mov dword [esp + 0x150c], 0
call fcn.00415aa0
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0xc0]
mov byte [esp + 0x150c], 1
call fcn.00401640
lea ecx, [esp + 0x28]
mov byte [esp + 0x1500], 0
call fcn.00401470
lea edx, [esp + 0x6e8]
push edx
lea ecx, [esp + 0x64]
call fcn.00401430
mov esi, eax
lea eax, [esp + 0x4e8]
push eax
lea ecx, [esp + 0x80]
mov byte [esp + 0x1504], 2
call fcn.00401430
mov edi, eax
lea ecx, [esp + 0xd0]
push ecx
lea ecx, [esp + 0x48]
mov byte [esp + 0x1504], 3
call fcn.00401430
push edi
push eax
lea edx, [esp + 0xa0]
push edx
mov byte [esp + 0x150c], 4
call fcn.00406700
lea ecx, [esp + 0xc0]
push ecx
push eax
lea edx, [esp + 0x3c]
push edx
mov byte [esp + 0x1518], 5
call fcn.00406700
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push esi
push eax
push ecx
mov byte [esp + 0x1528], 6
call fcn.00406700
add esp, 0xc
lea ecx, [ebp + 0x196b6]
call fcn.0048e1e0
lea ecx, [esp + 0x28]
call fcn.00401470
lea ecx, [esp + 0x98]
call fcn.00401470
lea ecx, [esp + 0x44]
call fcn.00401470
lea ecx, [esp + 0x7c]
call fcn.00401470
lea ecx, [esp + 0x60]
mov byte [esp + 0x1500], 0
call fcn.00401470
push 0xffffffffffffffff
push 0
lea eax, [ebp + 0x19892]
push eax
lea ecx, [ebp + 0x198ae]
call fcn.00401640
lea ecx, [esp + 0xb4]
call fcn.00401470
mov al, 1
mov ecx, dword [esp + 0x14f8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x14e4]
xor ecx, esp
call fcn.004bfdfd
add esp, 0x14f4
ret 8