Function at 0x614bcc
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd94
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x26c], ebx
mov dword [ebp - 0x268], ebx
mov dword [ebp - 0x258], ebx
mov dword [ebp - 0x264], ebx
mov dword [ebp - 0x254], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x14], ebx
mov esi, ecx
mov ebx, edx
mov dword [ebp - 0x18], eax
xor eax, eax
push ebp
push 0x615095
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x18]
mov byte [eax + 0x70], 1
mov eax, dword [ebp - 0x18]
call fcn.00616720
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jl 0x61504a
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0xa9], 0
je 0x61504a
xor eax, eax
mov dword [ebp - 0x38], eax
test esi, esi
jne 0x614c5e
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x72]
call fcn.006128a0
mov esi, eax
lea ecx, [ebp - 0xc]
mov edx, 0x6150b4
mov eax, ebx
call fcn.00422a94
mov dl, 1
mov eax, ebx
call fcn.0042242c
test al, al
je 0x614c81
mov eax, ebx
call fcn.00422920
lea ecx, [ebp - 0x254]
mov edx, 0x6150b4
mov eax, ebx
call fcn.00422a94
mov eax, dword [ebp - 0x254]
lea edx, [ebp - 0x10]
call fcn.00422c88
mov edx, esi
mov eax, dword [ebp - 0x18]
call fcn.006159d8
mov edi, eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x2d]
mov dword [ebp - 0x2c], eax
mov dl, 1
mov eax, dword [0x601efc]
call fcn.00602540
mov dword [ebp - 0x30], eax
xor edx, edx
push ebp
push 0x615043
push dword fs:[edx]
mov dword fs:[edx], esp
mov edx, ebx
mov eax, dword [ebp - 0x30]
call fcn.0060291c
mov dl, 1
mov eax, dword [ebp - 0x30]
call fcn.00602670
xor eax, eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x30]
call fcn.00602668
test al, al
jne 0x614d19
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0x39], 0
jne 0x614d19
cmp dword [eax + 0x35], 0
jne 0x614d19
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x30]
mov ecx, dword [edx + 0x28]
mov dword [eax + 0x35], ecx
mov ecx, dword [edx + 0x2c]
mov dword [eax + 0x39], ecx
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0x39], 0
jne 0x614d2a
cmp dword [eax + 0x35], 0
jbe 0x614d69
jmp 0x614d2c
jle 0x614d69
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0xa9]
mov edx, dword [eax]
call dword [edx]
push edx
push eax
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
push edx
push eax
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 0x39]
mov eax, dword [eax + 0x35]
cmp edx, dword [esp + 4]
jne 0x614d65
cmp eax, dword [esp]
pop edx
pop eax
jbe 0x614d91
jmp 0x614d69
pop edx
pop eax
jle 0x614d91
mov edx, 0x6150cc
mov eax, dword [ebp - 0x18]
call fcn.006007b4
mov eax, dword [ebp - 0x18]
mov byte [eax + 0x70], 0
mov ecx, esi
mov edx, ebx
mov eax, dword [ebp - 0x18]
call fcn.006149dc
mov dword [ebp - 0x1c], eax
jmp 0x615012
add edi, 0x1a
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x2d]
test eax, eax
ja 0x614da2
xor ecx, ecx
jmp 0x614da4
mov ecx, eax
add ecx, edi
mov eax, dword [ebp - 0x30]
cmp dword [eax + 0x2c], 0
jne 0x614dba
cmp dword [eax + 0x28], 0x7fffffff
jbe 0x614dc3
jmp 0x614dbc
jle 0x614dc3
mov ebx, 0x7fffffff
jmp 0x614dcb
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x28]
mov ebx, eax
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0x39], 0
jne 0x614ddc
cmp dword [eax + 0x35], 0
jbe 0x614e06
jmp 0x614dde
jle 0x614e06
mov eax, ebx
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 0x39]
mov eax, dword [eax + 0x35]
cmp edx, dword [esp + 4]
jne 0x614dfc
cmp eax, dword [esp]
pop edx
pop eax
jae 0x614e06
jmp 0x614e00
pop edx
pop eax
jge 0x614e06
mov eax, dword [ebp - 0x18]
mov ebx, dword [eax + 0x35]
cmp ebx, edi
jae 0x614e11
mov dword [ebp - 0x1c], 0xffffd5c6
cmp dword [ebp - 0x1c], 0
jne 0x615012
mov eax, dword [ebp - 0x30]
mov ebx, dword [eax + 0x20]
mov eax, ecx
xor edx, edx
div ebx
test edx, edx
je 0x614e36
mov eax, ecx
xor edx, edx
div ebx
inc eax
imul ebx
jmp 0x614e38
mov eax, ecx
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x2d], eax
mov ecx, dword [ebp - 0x18]
mov dl, 1
mov eax, dword [0x60ee48]
call fcn.00611bd4
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x38]
call fcn.0060715c
push 1
mov ecx, dword [ebp - 0x38]
mov edx, esi
mov eax, dword [ebp - 0x18]
call fcn.00618668
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jne 0x614ffe
mov eax, dword [ebp - 0x30]
call fcn.00602668
test al, al
jne 0x614ffe
mov byte [ebp - 0x31], 0
jmp 0x614ff4
push 0
lea eax, [ebp - 0x258]
push eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x260], eax
mov byte [ebp - 0x25c], 0x11
lea ecx, [ebp - 0x260]
mov edx, 0x2b1b
mov eax, dword [ebp - 0x18]
call fcn.00601728
mov eax, dword [ebp - 0x258]
push eax
push 0
lea eax, [ebp - 0x264]
push eax
mov dword [ebp - 0x260], 1
mov byte [ebp - 0x25c], 0
lea ecx, [ebp - 0x260]
mov edx, 0x2b26
mov eax, dword [ebp - 0x18]
call fcn.00601728
mov edx, dword [ebp - 0x264]
lea eax, [ebp - 8]
pop ecx
call fcn.00408e20
lea eax, [ebp - 0x14]
mov edx, dword [ebp - 8]
call fcn.00407f58
mov bl, 2
movzx eax, word [0x6150fc]
mov word [ebp - 0x3a], ax
xor eax, eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
push eax
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0
mov edx, ebx
movzx ecx, word [ebp - 0x3a]
mov eax, dword [ebp - 0x14]
call fcn.004cca90
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x38]
cmp byte [eax + 0xb1], 1
jne 0x614f88
push 0
push 0
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x20]
push eax
push 0x104
lea eax, [ebp - 0x250]
push eax
mov eax, dword [ebp - 0x30]
add eax, 0x10
push eax
call sub.kernel32.dll_GetVolumeInformationW
mov edx, 0x615100
lea eax, [ebp - 0x250]
call fcn.004235a8
test eax, eax
jne 0x614ff4
mov byte [ebp - 0x31], 1
jmp 0x614ff4
mov edi, dword [ebp - 0xc]
test edi, edi
je 0x614f94
sub edi, 4
mov edi, dword [edi]
lea edx, [ebp - 0x268]
mov eax, dword [ebp - 0xc]
call fcn.00422cc8
mov eax, dword [ebp - 0x268]
mov dword [ebp - 0x48], eax
mov esi, dword [ebp - 0x48]
test esi, esi
je 0x614fb7
sub esi, 4
mov esi, dword [esi]
lea eax, [ebp - 0x26c]
push eax
mov ecx, edi
sub ecx, esi
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.00408ff0
mov edx, dword [ebp - 0x26c]
lea eax, [ebp - 4]
mov ecx, 0x615124
call fcn.00408e20
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.0042242c
test al, al
je 0x614ff4
mov byte [ebp - 0x31], 1
cmp byte [ebp - 0x31], 0
je 0x614e90
cmp dword [ebp - 0x1c], 0
jne 0x615012
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x18]
call fcn.00618548
mov dword [ebp - 0x1c], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x61504a
mov eax, dword [ebp - 0x38]
xor edx, edx
mov dword [ebp - 0x38], edx
call fcn.00405de4
mov eax, dword [ebp - 0x30]
xor edx, edx
mov dword [ebp - 0x30], edx
call fcn.00405de4
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x2d], edx
ret
cmp dword [ebp - 0x1c], 0
jge 0x61505a
mov dl, 1
mov eax, dword [ebp - 0x18]
call fcn.006005d4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x61509c
lea eax, [ebp - 0x26c]
mov edx, 3
call fcn.00407b90
lea eax, [ebp - 0x258]
mov edx, 2
call fcn.00407b90
lea eax, [ebp - 0x14]
mov edx, 5
call fcn.00407b90
ret