Function at 0x42f410
Capabilities:
Get disk information
Get disk size
Get storage device properties
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x380
mov ecx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
cmp esi, ecx
mov dword [esp + 0x110], ecx
je 0x42fece
sub ecx, esi
lea edx, [esi + 0x10]
add ecx, 0xfffffff4
jmp 0x42f4d6
mov edi, dword [esp + 0x174]
mov eax, dword [esp + 0x170]
mov dword [esp + 0x170], ebx
mov dword [esp + 0x174], 0
mov ecx, dword [esp + 0x178]
mov dword [esp + 0x178], esi
mov ebx, eax
mov esi, ecx
lea eax, [esp + 0x170]
push eax
call fcn.004302b0
add esp, 4
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0xbc]
mov dword [eax], 1
mov dword [eax + 4], ebx
mov dword [eax + 8], edi
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], ecx
mov edi, dword [esp + 0xc8]
mov eax, dword [esp + 0xc4]
mov esi, dword [ebp + 0x14]
mov ebx, dword [esp + 0xc0]
cmp ebx, esi
lea edx, [edi + 0xc]
lea ecx, [eax - 0xc]
mov esi, ebx
je 0x42fe91
lea ebx, [esi + 0xc]
mov eax, ecx
mov edi, edx
mov dword [esp + 0x10c], ebx
mov ecx, dword [esi]
cmp ecx, 0x80000000
mov dword [esp + 8], ecx
je 0x42fe91
mov dword [esp + 0xc4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc8], edi
mov edi, dword [esi + 4]
mov ebx, dword [esi + 8]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, dword [eax + 0x10]
movsd qword [esp + 0xf0], xmm1
movsd qword [esp + 0xe8], xmm0
mov dword [esp + 0xbc], eax
mov dword [esp + 0xf8], eax
push edi
call sub.kernel32.dll_GetDriveTypeW
mov ecx, eax
mov dword [esp + 0x2c], edi
and ecx, 0xfffffffe
cmp ecx, 2
jne 0x42f7c0
mov dword [esp + 0xb8], eax
push 0x20a
push 0
lea esi, [esp + 0x178]
push esi
call sub.msvcrt.dll_memset
add esp, 0xc
xorps xmm0, xmm0
mov dword [esp + 0x3c], 0
movaps xmmword [esp + 0x90], xmm0
movaps xmmword [esp + 0x80], xmm0
movaps xmmword [esp + 0x70], xmm0
movaps xmmword [esp + 0x60], xmm0
push 0x20
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x44]
push eax
push 0
push 0
push 0x105
push esi
push edi
call sub.kernel32.dll_GetVolumeInformationW
test eax, eax
je 0x42f785
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xb4], eax
push ebx
push edi
lea eax, [esp + 0x4c]
push eax
call fcn.0042a380
add esp, 0xc
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x42f7de
mov eax, ebx
sub eax, 2
jb 0x42fef4
mov ecx, dword [esp + 0x2c]
lea eax, [ecx + eax*2]
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xe4], eax
mov dword [esp + 0xd0], 1
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 1
mov word [esp + 0xdc], 0
lea eax, [esp + 0xd0]
push eax
lea eax, [esp + 0x104]
push eax
call fcn.00418d20
add esp, 8
mov eax, dword [esp + 0x104]
mov dword [esp + 0x28], eax
mov al, 1
mov dword [esp + 4], eax
mov ebx, dword [esp + 8]
call fcn.0043f600
push eax
push 0
push 3
push 0
push 3
push 0
push dword [esp + 0x40]
call sub.kernel32.dll_CreateFileW
mov edi, eax
dec eax
cmp eax, 0xfffffffe
jae 0x42f92a
mov eax, dword [esp + 0x48]
mov dword [esp + 0xcc], edi
mov dword [esp + 0xb0], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esp + 0x34]
push ecx
push 0
push eax
call sub.kernel32.dll_GetDiskFreeSpaceExW
test eax, eax
je 0x42f96a
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov eax, ecx
or eax, edx
je 0x42f990
mov eax, dword [esp + 0x50]
xorps xmm0, xmm0
mov dword [esp + 0x114], 7
mov dword [esp + 0x118], 0
mov dword [esp + 0xac], edx
mov dword [esp + 4], ecx
mov byte [esp + 0x11c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x40], 0
movsd qword [esp + 0x30], xmm0
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xa4], eax
push 0
lea eax, [esp + 0x44]
push eax
push 0xc
lea eax, [esp + 0x3c]
push eax
push 0xc
lea eax, [esp + 0x128]
push eax
push 0x2d1400
push edi
call sub.kernel32.dll_DeviceIoControl
test eax, eax
je 0x42fa22
cmp dword [esp + 0x40], 0xc
mov eax, 2
jne 0x42fa4d
xor eax, eax
cmp byte [esp + 0x38], 0
sete al
jmp 0x42fa4d
call fcn.0044ed20
test edx, edx
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], edx
mov dword [esp + 0xd0], 1
je 0x42f7c0
lea eax, [esp + 0xd8]
push eax
call fcn.0044ecd0
add esp, 4
nop word [eax + eax]
mov ebx, dword [esp + 8]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 8
mov dword [esp + 0x14], 0
jmp 0x42f820
mov edi, dword [esp + 0x48]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 8
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 8]
test eax, eax
je 0x42f820
shl eax, 2
lea eax, [eax + eax*2]
push 4
push eax
push edi
call main
add esp, 0xc
nop dword [eax + eax]
mov eax, dword [esp + 0x2c]
test ebx, ebx
je 0x42f836
add ebx, ebx
push 2
push ebx
push eax
call main
add esp, 0xc
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x174], ecx
mov dword [esp + 0x170], eax
mov dword [esp + 0x178], edx
push edx
lea eax, [esp + 0x174]
push eax
lea eax, [esp + 0x128]
push eax
call fcn.004246c0
add esp, 0xc
cmp dword [esp + 0xe8], 0
je 0x42f910
mov edi, dword [esp + 0xf0]
mov eax, dword [esp + 0x128]
movsd xmm0, qword [esp + 0x120]
mov ebx, dword [esp + 0xec]
mov esi, dword [esp + 0xf4]
test edi, edi
mov dword [esp + 0x178], eax
movsd qword [esp + 0x170], xmm0
je 0x42f450
mov eax, dword [esp + 0x170]
mov dword [esp + 0x170], 0
test eax, eax
je 0x42f482
mov dword [edi + 0xc], eax
mov dword [eax + 0x10], edi
mov edi, dword [esp + 0x174]
mov dword [esp + 0x174], 0
add esi, dword [esp + 0x178]
mov dword [esp + 0x178], 0
jmp 0x42f482
mov ebx, dword [esp + 0x120]
mov edi, dword [esp + 0x124]
mov esi, dword [esp + 0x128]
jmp 0x42f492
call fcn.0044ed20
test edx, edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], 1
je 0x42f950
lea eax, [esp + 0x20]
push eax
call fcn.0044ecd0
add esp, 4
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 8
mov dword [esp + 0x14], 0
jmp 0x42f9d8
call fcn.0044ed20
test edx, edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], 1
je 0x42f990
lea eax, [esp + 0x20]
push eax
call fcn.0044ecd0
add esp, 4
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 8
mov dword [esp + 0x14], 0
push edi
call sub.kernel32.dll_CloseHandle
test eax, eax
jne 0x42f9d8
call fcn.0044ed20
test edx, edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], 1
je 0x42f9d8
lea eax, [esp + 0x20]
push eax
call fcn.0044ecd0
add esp, 4
mov eax, dword [esp + 0x100]
test eax, eax
je 0x42f9f4
add eax, eax
push 2
push eax
push dword [esp + 0x30]
call main
add esp, 0xc
mov edi, dword [esp + 0x48]
lea ebx, [edi + 4]
jmp 0x42fa0a
add ebx, 0xc
dec esi
je 0x42f7fa
mov eax, dword [ebx - 4]
test eax, eax
je 0x42fa00
add eax, eax
push 2
push eax
push dword [ebx]
call main
add esp, 0xc
jmp 0x42fa00
call fcn.0044ed20
test edx, edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], 1
je 0x42fa48
lea eax, [esp + 0x20]
push eax
call fcn.0044ecd0
add esp, 4
mov eax, 2
mov dword [esp + 0xa0], eax
xor eax, eax
mov ecx, 0x20a
nop dword [eax + eax]
cmp word [esp + eax*2 + 0x170], 0
je 0x42fa76
inc eax
add ecx, 0xfffffffe
jne 0x42fa60
mov eax, 0x105
push eax
lea eax, [esp + 0x174]
push eax
lea eax, [esp + 0x58]
push eax
call fcn.0048e920
add esp, 0xc
cmp word [esp + 0x60], 0
je 0x42fc43
cmp word [esp + 0x62], 0
je 0x42fc4a
cmp word [esp + 0x64], 0
je 0x42fc54
cmp word [esp + 0x66], 0
je 0x42fc5e
cmp word [esp + 0x68], 0
je 0x42fc68
cmp word [esp + 0x6a], 0
je 0x42fc72
cmp word [esp + 0x6c], 0
je 0x42fc7c
cmp word [esp + 0x6e], 0
je 0x42fc86
cmp word [esp + 0x70], 0
je 0x42fc90
cmp word [esp + 0x72], 0
je 0x42fc9a
cmp word [esp + 0x74], 0
je 0x42fca4
cmp word [esp + 0x76], 0
je 0x42fcae
cmp word [esp + 0x78], 0
je 0x42fcb8
cmp word [esp + 0x7a], 0
je 0x42fcbf
cmp word [esp + 0x7c], 0
je 0x42fcc6
cmp word [esp + 0x7e], 0
je 0x42fccd
cmp word [esp + 0x80], 0
je 0x42fcd4
cmp word [esp + 0x82], 0
je 0x42fcdb
cmp word [esp + 0x84], 0
je 0x42fce2
cmp word [esp + 0x86], 0
je 0x42fce9
cmp word [esp + 0x88], 0
je 0x42fcf0
cmp word [esp + 0x8a], 0
je 0x42fcf7
cmp word [esp + 0x8c], 0
je 0x42fcfe
cmp word [esp + 0x8e], 0
je 0x42fd05
cmp word [esp + 0x90], 0
je 0x42fd0c
cmp word [esp + 0x92], 0
je 0x42fd13
cmp word [esp + 0x94], 0
je 0x42fd1a
cmp word [esp + 0x96], 0
je 0x42fd21
cmp word [esp + 0x98], 0
je 0x42fd28
cmp word [esp + 0x9a], 0
je 0x42fd2f
cmp word [esp + 0x9c], 0
je 0x42fd36
cmp word [esp + 0x9e], 1
mov eax, 0x20
sbb eax, 0
jmp 0x42fd3b
xor eax, eax
jmp 0x42fd3b
mov eax, 1
jmp 0x42fd3b
mov eax, 2
jmp 0x42fd3b
mov eax, 3
jmp 0x42fd3b
mov eax, 4
jmp 0x42fd3b
mov eax, 5
jmp 0x42fd3b
mov eax, 6
jmp 0x42fd3b
mov eax, 7
jmp 0x42fd3b
mov eax, 8
jmp 0x42fd3b
mov eax, 9
jmp 0x42fd3b
mov eax, 0xa
jmp 0x42fd3b
mov eax, 0xb
jmp 0x42fd3b
mov eax, 0xc
jmp 0x42fd3b
mov eax, 0xd
jmp 0x42fd3b
mov eax, 0xe
jmp 0x42fd3b
mov eax, 0xf
jmp 0x42fd3b
mov eax, 0x10
jmp 0x42fd3b
mov eax, 0x11
jmp 0x42fd3b
mov eax, 0x12
jmp 0x42fd3b
mov eax, 0x13
jmp 0x42fd3b
mov eax, 0x14
jmp 0x42fd3b
mov eax, 0x15
jmp 0x42fd3b
mov eax, 0x16
jmp 0x42fd3b
mov eax, 0x17
jmp 0x42fd3b
mov eax, 0x18
jmp 0x42fd3b
mov eax, 0x19
jmp 0x42fd3b
mov eax, 0x1a
jmp 0x42fd3b
mov eax, 0x1b
jmp 0x42fd3b
mov eax, 0x1c
jmp 0x42fd3b
mov eax, 0x1d
jmp 0x42fd3b
mov eax, 0x1e
push eax
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.0048e920
add esp, 0xc
movsd xmm0, qword [esp + 0x50]
lea ecx, [esp + 0x128]
lea eax, [esi + esi*2]
mov esi, dword [esp + 0xb0]
movsd xmm1, qword [esp + 0x58]
movsd xmm2, qword [esp + 0x20]
mov edx, dword [esp + 0xb4]
movsd qword [ecx], xmm0
movsd xmm0, qword [esp + 0x18]
movsd qword [ecx + 8], xmm1
lea eax, [esi + eax*4]
movsd qword [ecx + 0x18], xmm2
shr edx, 0x13
and dl, 1
cmp dword [esp + 0xb8], 2
movsd qword [ecx + 0x10], xmm0
mov dword [esp + 0x160], esi
mov dword [esp + 0x164], esi
mov esi, dword [esp + 0x44]
mov dword [esp + 0x168], esi
mov dword [esp + 0x16c], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x124], 0xffffffff
mov dword [esp + 0x14c], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x150], eax
sete byte [esp + 0x158]
mov byte [esp + 0x159], dl
lea eax, [esp + 0x120]
push eax
lea eax, [esp + 0x10]
push eax
call fcn.00417c90
add esp, 8
push edi
call sub.kernel32.dll_CloseHandle
test eax, eax
jne 0x42fe74
mov dword [esp + 4], 0
call fcn.0044ed20
test edx, edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], 1
je 0x42fe74
mov dword [esp + 4], 0
lea eax, [esp + 0x20]
push eax
call fcn.0044ecd0
add esp, 4
mov eax, dword [esp + 0x100]
test eax, eax
je 0x42f820
add eax, eax
push 2
push eax
push dword [esp + 0x30]
jmp 0x42f810
cmp ebx, dword [ebp + 0x14]
je 0x42fece
mov ecx, 0xaaaaaaab
mul ecx
mov esi, edx
shr esi, 3
jmp 0x42feb6
add edi, 0xc
dec esi
je 0x42fece
mov eax, dword [edi - 4]
test eax, eax
je 0x42feb0
add eax, eax
push 2
push eax
push dword [edi]
call main
add esp, 0xc
jmp 0x42feb0
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 0x10]
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
mov dword [eax + 0x10], ecx
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [esp + 8]
push 0x572604
push ebx
push eax
call fcn.004df620
add esp, 0xc
ud2