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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x2784
call fcn.0046be90
mov eax, dword [0x4b77c0]
xor eax, esp
mov dword [esp + 0x2780], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0x20]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 0x14]
xor ebx, ebx
push eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], ebx
call fcn.0043ed20
add esp, 4
test eax, eax
je 0x43f4d9
cmp dword [ebp + 0x24], ebx
jne 0x43f4c1
cmp dword [0x4dce74], ebx
jne 0x43f4c1
mov ecx, dword [0x4dce70]
push 0x10
push ecx
push str.VOL_ALREADY_MOUNTED
call fcn.0044c960
mov edx, dword [0x4dce6c]
add esp, 4
push eax
push edx
call dword [sym.imp.USER32.dll_MessageBoxW]
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2780]
xor ecx, esp
call fcn.0046be7b
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov ecx, dword [ebp + 0xc]
mov edx, 1
shl edx, cl
test edx, eax
je 0x43f517
cmp dword [ebp + 0x24], ebx
jne 0x43f4ff
push str.DRIVE_LETTER_UNAVAILABLE
call fcn.00433d70
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2780]
xor ecx, esp
call fcn.0046be7b
mov esp, ebp
pop ebp
ret
cmp edi, ebx
jne 0x43f528
call fcn.00433280
test eax, eax
jne 0x43fd2b
push 0x328
lea eax, [esp + 0x124]
push ebx
push eax
call fcn.0046bf90
mov edx, dword [0x4dcebc]
mov eax, dword [esi + 0x80]
xor ecx, ecx
add esp, 0xc
cmp dword [ebp + 0x1c], ebx
mov dword [esp + 0x3cc], edx
sete cl
mov dword [esp + 0x440], eax
mov dword [esp + 0x3b8], ecx
mov ecx, dword [esi + 0x84]
mov dword [esp + 0x444], ecx
jmp 0x43f580
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x3a8], edx
mov dword [esp + 0x3a4], eax
mov dword [esp + 0x3c4], ebx
cmp dword [esp + 0x24], ebx
je 0x43f5b5
mov esi, dword [esp + 0x24]
mov ecx, 0x1b
lea edi, [esp + 0x338]
rep movsd dword es:[edi], dword [esi]
jmp 0x43f5bc
mov dword [esp + 0x338], ebx
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
cmp eax, ebx
jne 0x43f5e9
cmp dword [edx + 8], ebx
je 0x43f5e9
lea esi, [edx + 0x14]
mov ecx, 0x1b
lea edi, [esp + 0x3d4]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x3d0], 1
jmp 0x43f5f0
mov dword [esp + 0x3d0], ebx
cmp dword [0x4dce90], 5
mov ecx, dword [edx + 4]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x3b0], eax
mov dword [esp + 0x3b4], ecx
mov dword [esp + 0x3c0], edx
mov dword [esp + 0x3bc], 1
jne 0x43f62e
cmp dword [0x4dce94], ebx
jne 0x43f62e
mov dword [esp + 0x3bc], ebx
mov edi, dword [esp + 0xc]
mov eax, edi
mov dword [esp + 0x100], 0xf
mov dword [esp + 0xfc], ebx
mov byte [esp + 0xec], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x43f650
sub eax, edx
push eax
push edi
lea ecx, [esp + 0xf0]
call fcn.0040c450
push 4
push ebx
push 0x495574
lea ecx, [esp + 0xf4]
call fcn.0041ef70
test eax, eax
jne 0x43f6f4
push 0xffffffffffffffff
push 4
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0xf4]
call fcn.00420c90
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xf4]
call fcn.0040c370
mov esi, 0x10
cmp dword [esp + 0x58], esi
jb 0x43f6bc
mov ecx, dword [esp + 0x44]
push ecx
call fcn.0046b849
add esp, 4
mov eax, dword [esp + 0xec]
mov dword [esp + 0x58], 0xf
mov dword [esp + 0x54], ebx
mov byte [esp + 0x44], bl
cmp dword [esp + 0x100], esi
jae 0x43f6e3
lea eax, [esp + 0xec]
push eax
push 0x104
push edi
call fcn.0046fdb4
add esp, 0xc
jmp 0x43f6f9
mov esi, 0x10
push 7
push ebx
push str.Volume
lea ecx, [esp + 0xf4]
call fcn.0041ef70
test eax, eax
jne 0x43f7d3
push 2
push 0xffffffffffffffff
push 0x49506c
lea ecx, [esp + 0xf4]
call fcn.0041f030
mov edx, dword [esp + 0xfc]
add edx, 0xfffffffe
cmp eax, edx
jne 0x43f7d3
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x54], esp
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x10c]
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push eax
mov byte [ecx + 4], bl
call fcn.0040c370
lea ecx, [esp + 0x120]
push ecx
call fcn.0043e580
add esp, 0x20
cmp dword [esp + 0x118], ebx
je 0x43f7a1
mov eax, dword [esp + 0x108]
cmp dword [esp + 0x11c], esi
jae 0x43f792
lea eax, [esp + 0x108]
push eax
push 0x104
push edi
call fcn.0046fdb4
add esp, 0xc
cmp dword [esp + 0x11c], esi
jb 0x43f7ba
mov edx, dword [esp + 0x108]
push edx
call fcn.0046b849
add esp, 4
mov dword [esp + 0x11c], 0xf
mov dword [esp + 0x118], ebx
mov byte [esp + 0x108], bl
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x134]
push edi
push ecx
call fcn.00430530
add esp, 0xc
cmp dword [esp + 0x14], ebx
jne 0x43f927
push 2
push ebx
push 0x495758
lea ecx, [esp + 0xf4]
call fcn.0041ef70
test eax, eax
jne 0x43f8a9
push 0xffffffffffffffff
push 1
lea edx, [esp + 0x64]
push edx
lea ecx, [esp + 0xf4]
call fcn.00420c90
push eax
lea eax, [esp + 0x7c]
push 0x495754
push eax
call fcn.004210f0
add esp, 0xc
cmp dword [eax + 0x18], esi
jb 0x43f841
mov eax, dword [eax + 4]
jmp 0x43f844
add eax, 4
push eax
lea ecx, [esp + 0x134]
push 0x104
push ecx
call fcn.0046fdb4
add esp, 0xc
cmp dword [esp + 0x90], esi
jb 0x43f870
mov edx, dword [esp + 0x7c]
push edx
call fcn.0046b849
add esp, 4
mov dword [esp + 0x90], 0xf
mov dword [esp + 0x8c], ebx
mov byte [esp + 0x7c], bl
cmp dword [esp + 0x74], esi
jb 0x43f899
mov eax, dword [esp + 0x60]
push eax
call fcn.0046b849
add esp, 4
mov dword [esp + 0x74], 0xf
mov dword [esp + 0x70], ebx
mov byte [esp + 0x60], bl
push 0x103
lea ecx, [esp + 0x684]
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_GetVolumePathNameA]
test eax, eax
je 0x43f927
lea edx, [esp + 0x1c]
push edx
mov eax, edx
push eax
lea ecx, [esp + 0x30]
push ecx
push edx
lea eax, [esp + 0x690]
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
test eax, eax
je 0x43f8ec
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x3ac], ecx
cmp dword [esp + 0x3b0], ebx
jne 0x43f927
push ebx
push ebx
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x28]
push eax
push ebx
push ebx
push ebx
lea ecx, [esp + 0x69c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
test eax, eax
je 0x43f927
mov edx, dword [esp + 0x2c]
shr edx, 0x13
and edx, 1
mov dword [esp + 0x3b0], edx
lea eax, [esp + 0x130]
push eax
call fcn.00430d20
mov ecx, dword [esp + 0x1c]
add esp, 4
cmp dword [ecx + 0x10], ebx
je 0x43f96f
push 4
lea edx, [esp + 0x3cc]
push edx
lea eax, [esp + 0x138]
push str.DeviceHarddisk_dPartition
push eax
call fcn.00470108
add esp, 0x10
cmp eax, 1
jne 0x43fb3f
mov dword [esp + 0x3c4], eax
push ebx
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [0x4b511c]
push 0x328
lea edx, [esp + 0x12c]
push edx
push 0x328
mov eax, edx
push eax
push 0x22200c
push ecx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
lea esi, [esp + 0x338]
mov edx, 0x6c
mov edi, edx
mov ecx, esi
lea esp, [esp]
mov byte [ecx], bl
inc ecx
sub edi, 1
jne 0x43f9b0
dec edx
mov byte [esi], bl
inc esi
cmp edx, ebx
jne 0x43f9b8
lea esi, [esp + 0x3d4]
mov edx, 0x6c
mov edi, edx
mov ecx, esi
mov byte [ecx], bl
inc ecx
sub edi, 1
jne 0x43f9d0
mov edi, 1
lea ecx, [ecx]
sub edx, edi
mov byte [esi], bl
add esi, edi
cmp edx, ebx
jne 0x43f9e0
cmp eax, ebx
jne 0x43fac0
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
cmp eax, 0x20
jne 0x43fb63
cmp dword [0x4dcec0], ebx
je 0x43fa48
mov eax, dword [esp + 0x20]
add eax, edi
cmp eax, 0xa
mov dword [esp + 0x20], eax
jge 0x43fa48
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [esp + 0x100], 0x10
jb 0x43f580
mov edx, dword [esp + 0xec]
push edx
call fcn.0046b849
add esp, 4
jmp 0x43f580
cmp dword [esp + 0x3b8], ebx
je 0x43fb2d
cmp dword [ebp + 0x24], ebx
jne 0x43fa96
cmp dword [0x4dce74], ebx
jne 0x43fb3f
mov ecx, dword [0x4dce70]
push 0x134
push ecx
push str.FILE_IN_USE
call fcn.0044c960
mov edx, dword [0x4dce6c]
add esp, 4
push eax
push edx
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
jne 0x43fb3f
cmp dword [esp + 0x100], 0x10
mov dword [esp + 0x3b8], ebx
jb 0x43f580
mov eax, dword [esp + 0xec]
push eax
call fcn.0046b849
add esp, 4
jmp 0x43f580
mov eax, dword [esp + 0x120]
cmp eax, ebx
je 0x43fd4f
cmp eax, 3
jne 0x43fd42
cmp dword [ebp + 0x28], ebx
je 0x43fd1f
mov eax, dword [0x4dcef8]
add eax, edi
cmp eax, 2
mov dword [0x4dcef8], eax
jle 0x43fba8
cmp dword [esp + 0x440], ebx
jne 0x43fba8
cmp dword [esp + 0x100], 0x10
mov dword [esp + 0x440], edi
jb 0x43f580
mov ecx, dword [esp + 0xec]
push ecx
call fcn.0046b849
add esp, 4
jmp 0x43f580
cmp dword [ebp + 0x24], ebx
jne 0x43fb3f
push str.FILE_IN_USE_FAILED
call fcn.00433d70
add esp, 4
lea ecx, [esp + 0xe8]
call fcn.0042e890
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2780]
xor ecx, esp
call fcn.0046be7b
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x24], ebx
jne 0x43fb84
cmp dword [0x4dcec4], ebx
je 0x43fb77
call esi
cmp eax, 0x15
je 0x43fb84
mov edx, dword [esp + 0x10]
push edx
call fcn.00434ad0
add esp, 4
lea ecx, [esp + 0xe8]
call fcn.0042e890
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2780]
xor ecx, esp
call fcn.0046be7b
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x14], ebx
je 0x43fd10
cmp dword [esp + 0x3d0], ebx
je 0x43fd10
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x30]
push eax
push 0x4956d8
push ecx
call fcn.0046c2c8
add esp, 0xc
cmp eax, edi
jne 0x43fd1f
push 0x218
lea edx, [esp + 0x44c]
push ebx
push edx
call fcn.0046bf90
mov eax, dword [esp + 0x3c]
push eax
push str.DeviceHarddisk_dPartition0
lea ecx, [esp + 0x45c]
push 0x104
push ecx
mov dword [esp + 0x66c], edi
call fcn.0046d05f
add esp, 0x1c
push ebx
lea edx, [esp + 0x40]
push edx
mov edx, dword [0x4b511c]
push 0x218
lea eax, [esp + 0x454]
push eax
push 0x218
mov ecx, eax
push ecx
push 0x222034
push edx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x43fd01
cmp dword [esp + 0x654], ebx
je 0x43fd01
push str.HIDDEN_VOL_PROT_PASSWORD_US_KEYB_LAYOUT
call fcn.0044c960
add esp, 4
push eax
mov eax, dword [esp + 0x14]
push 0x48ff78
push eax
lea ecx, [esp + 0xbc]
push ecx
call fcn.0043aea0
add esp, 8
push eax
lea edx, [esp + 0xd8]
push edx
call fcn.00403960
add esp, 0xc
push eax
lea eax, [esp + 0x9c]
push eax
call fcn.00403960
add esp, 0xc
cmp dword [eax + 0x18], 8
jb 0x43fcae
mov eax, dword [eax + 4]
jmp 0x43fcb1
add eax, 4
push eax
call fcn.00433d40
add esp, 4
lea ecx, [esp + 0x94]
call fcn.0043a270
lea ecx, [esp + 0xcc]
call fcn.0043a270
lea ecx, [esp + 0xb0]
call fcn.0043a270
lea ecx, [esp + 0xe8]
call fcn.0042e890
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2780]
xor ecx, esp
call fcn.0046be7b
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x120]
mov edx, dword [esp + 0x10]
push ecx
push edx
jmp 0x43fd17
mov eax, dword [esp + 0x10]
push 3
push eax
call fcn.0043afa0
add esp, 8
lea ecx, [esp + 0xe8]
call fcn.0042e890
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2780]
xor ecx, esp
call fcn.0046be7b
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x24], ebx
jne 0x43fd1f
mov ecx, dword [esp + 0x10]
push eax
push ecx
jmp 0x43fd17
mov eax, dword [esp + 0x440]
mov edx, dword [esp + 0x18]
cmp eax, dword [edx + 0x80]
je 0x43fd80
cmp eax, ebx
je 0x43fd80
cmp dword [ebp + 0x28], ebx
je 0x43fd80
cmp dword [0x4dce74], ebx
jne 0x43fd80
push str.HEADER_DAMAGED_AUTO_USED_HEADER_BAK
call fcn.00433d10
add esp, 4
mov eax, dword [esp + 0x124]
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
mov edi, dword [ebp + 0xc]
mov dword [0x4b9914], eax
cmp eax, ebx
je 0x43fdfb
lea eax, [edi + 0x41]
mov word [esp + 0x678], ax
lea eax, [esp + 0x678]
push eax
mov ecx, 0x3a
xor edx, edx
push str.MOUNTED_VOLUME_DIRTY
mov word [esp + 0x682], cx
mov word [esp + 0x684], dx
call fcn.0044c960
add esp, 4
push eax
lea ecx, [esp + 0x790]
push ecx
call esi
lea edx, [esp + 0x794]
push edx
call fcn.00433ec0
add esp, 0x10
cmp eax, 6
jne 0x43fdfb
push 1
push edi
call fcn.004385f0
add esp, 8
cmp dword [esp + 0x128], ebx
je 0x43fef3
cmp dword [0x4dce74], ebx
jne 0x43fe8a
cmp dword [esp + 0x14], ebx
jne 0x43fe8a
mov eax, dword [esp + 0xc]
push eax
call fcn.004347b0
add esp, 4
test eax, eax
jne 0x43fe8a
mov ecx, dword [esp + 0xc]
push ecx
call fcn.004347d0
add esp, 4
test eax, eax
jne 0x43fe8a
lea edx, [edi + 0x41]
mov word [esp + 0x668], dx
lea edx, [esp + 0x668]
push edx
mov eax, 0x3a
xor ecx, ecx
push str.MOUNTED_CONTAINER_FORCED_READ_ONLY
mov word [esp + 0x672], ax
mov word [esp + 0x674], cx
call fcn.0044c960
add esp, 4
push eax
lea eax, [esp + 0x1790]
push eax
call esi
lea ecx, [esp + 0x1794]
push ecx
call fcn.00433d40
add esp, 0x10
cmp dword [esp + 0x128], ebx
je 0x43fef3
cmp dword [0x4dce74], ebx
jne 0x43fef3
cmp dword [esp + 0x14], ebx
je 0x43fef3
lea edx, [edi + 0x41]
mov word [esp + 0x660], dx
lea edx, [esp + 0x660]
push edx
mov eax, 0x3a
xor ecx, ecx
push str.MOUNTED_DEVICE_FORCED_READ_ONLY
mov word [esp + 0x66a], ax
mov word [esp + 0x66c], cx
call fcn.0044c960
add esp, 4
push eax
lea eax, [esp + 0xf90]
push eax
call esi
lea ecx, [esp + 0xf94]
push ecx
call fcn.00433d40
add esp, 0x10
cmp dword [esp + 0x12c], ebx
je 0x43ffb9
cmp dword [0x4dce74], ebx
jne 0x43ffb9
mov edx, dword [esp + 0xc]
push str.DeviceHarddisk
push edx
call fcn.0046c6d0
add esp, 8
cmp eax, dword [esp + 0xc]
jne 0x43ffb9
lea eax, [edi + 0x41]
mov word [esp + 0x670], ax
lea eax, [esp + 0x670]
push eax
mov ecx, 0x3a
xor edx, edx
push str.MOUNTED_DEVICE_FORCED_READ_ONLY_WRITE_PROTECTION
mov word [esp + 0x67a], cx
mov word [esp + 0x67c], dx
call fcn.0044c960
add esp, 4
push eax
lea ecx, [esp + 0x1f90]
push ecx
call esi
lea edx, [esp + 0x1f94]
push edx
call fcn.00433d40
add esp, 0x10
cmp dword [0x4dce90], 6
jl 0x43ffb9
mov esi, dword [esp + 0xc]
push str.DeviceHarddiskVolume
push esi
call fcn.0046c6d0
add esp, 8
cmp eax, esi
je 0x43ffb9
push str.ASK_REMOVE_DEVICE_WRITE_PROTECTION
call fcn.00433e10
add esp, 4
cmp eax, 6
jne 0x43ffb9
mov eax, dword [esp + 0x10]
push esi
push eax
call fcn.00438710
add esp, 8
push ebx
push edi
push 0x8000
mov dword [0x4dcef8], ebx
call fcn.00437570
add esp, 0xc
lea ecx, [esp + 0xe8]
cmp dword [esp + 0x3b8], ebx
jne 0x43fffd
call fcn.0042e890
mov eax, 2
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2780]
xor ecx, esp
call fcn.0046be7b
mov esp, ebp
pop ebp
ret
call fcn.0042e890
mov ecx, dword [esp + 0x278c]
pop edi
pop esi
pop ebx
xor ecx, esp
mov eax, 1
call fcn.0046be7b
mov esp, ebp
pop ebp
ret