Function at 0x413f30
Capabilities:
Get disk information
Get disk size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x214
mov eax, dword [0x43d004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
xorps xmm0, xmm0
mov dword [ebp - 0x1d0], 0
push edi
push str.PartResizePreCheck_...
mov ebx, ecx
movlpd qword [ebp - 0xc], xmm0
movups xmmword [ebp - 0x1a8], xmm0
call fcn.0040f530
add esp, 4
push 0
push 0
push 0x147
push dword [0x43fc20]
call dword [sym.imp.USER32.dll_SendMessageW]
mov edi, eax
cmp edi, 0xffffffff
jne 0x413f99
push str.Failed_to_get_combox_sel
call fcn.0040f530
jmp 0x414978
mov edx, dword [0x43e364]
xor eax, eax
test edx, edx
je 0x41497b
mov esi, dword [0x43e360]
mov dword [ebp - 0x1cc], esi
mov ecx, dword [esi]
test ecx, ecx
js 0x413fbf
cmp ecx, edi
je 0x413fe3
inc eax
add esi, 0x4920
mov dword [ebp - 0x1cc], esi
cmp eax, edx
jb 0x413fb5
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00417710
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x490], 0
lea eax, [esi + 0x494]
mov dword [ebp - 0x204], eax
mov byte [eax], 0
lea eax, [esi + 0x4d4]
mov dword [ebp - 0x208], eax
mov byte [eax], 0
test ebx, ebx
je 0x414011
mov dword [ebx], esi
cmp byte [esi + 0x264], 0
je 0x414029
push str._FAIL__No_need_to_resize_part
call fcn.0040f530
jmp 0x414978
mov al, byte [esi + 0x224]
lea ebx, [esi + 0x224]
mov dword [ebp - 0x1fc], ebx
test al, al
jne 0x41404e
push str._FAIL__No_logical_drive_letter_found_for_this_disk
call fcn.0040f530
jmp 0x414978
movsx eax, al
push eax
push 0x43a7e0
lea eax, [ebp - 0xc]
push 8
push eax
call fcn.00401010
add esp, 0x10
lea eax, [ebp - 0x1f4]
push eax
lea eax, [ebp - 0x1f0]
push eax
lea eax, [ebp - 0x1c0]
push eax
lea eax, [ebp - 0x1ec]
push eax
lea eax, [ebp - 0xc]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
mov dword [ebp - 0x1d4], eax
call eax
test eax, eax
jne 0x4140c1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0xc]
push eax
push str.Failed_to_GetDiskFreeSpaceA___s___u
call fcn.0040f530
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00417710
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x1c0]
push str.BytesPerSector_for_this_disk_is__u
call fcn.0040f530
add esp, 8
mov byte [ebp - 0x118], 0
mov byte [ebp - 0xc], 0
xor edi, edi
mov al, byte [ebx + edi]
test al, al
je 0x41411a
movsx eax, al
push eax
push str._C:
lea eax, [ebp - 0xc]
push 8
push eax
call fcn.00401010
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x118]
push 0x104
push eax
call fcn.0041d9b6
inc edi
add esp, 0x1c
cmp edi, 0x40
jl 0x4140e1
lea eax, [ebp - 0x118]
push eax
push str.Logical_drives_in_this_disk:__s
call fcn.0040f530
push 0x4400
call fcn.0041c36a
mov ebx, eax
add esp, 0xc
mov dword [ebp - 0x1bc], ebx
test ebx, ebx
je 0x41497b
push ecx
mov ecx, dword [esi + 4]
xor dl, dl
push 0
call fcn.004081a0
add esp, 8
mov dword [ebp - 0x20c], eax
cmp eax, 0xffffffff
je 0x414972
push 0
lea ecx, [ebp - 0x210]
push ecx
push 0x4400
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x41419c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0
push str.Failed_to_read_disk__u__u
call fcn.0040f530
add esp, 0xc
jmp 0x414946
push 0x4400
lea eax, [esi + 0x520]
push ebx
push eax
call fcn.004192f0
add esp, 0xc
cmp byte [ebx + 0x1c2], 0xee
jne 0x4143c3
cmp dword [ebx + 0x200], 0x20494645
jne 0x4143c3
cmp dword [ebx + 0x204], 0x54524150
jne 0x4143c3
lea edi, [ebx + 0x428]
mov dword [ebp - 0x1d8], 1
mov dword [esi + 8], 1
xor ebx, ebx
mov dword [ebp - 0x1b8], 0
lea edx, [edi - 0x18]
mov esi, 0xc
lea eax, [ebp - 0x1a8]
nop
mov ecx, dword [edx]
cmp ecx, dword [eax]
jne 0x414223
add edx, 4
add eax, 4
sub esi, 4
jae 0x414210
jmp 0x414244
push dword [edi + 4]
mov eax, dword [ebp - 0x1b8]
push dword [edi]
inc eax
push dword [edi - 4]
push dword [edi - 8]
push eax
push str.GPT_Part_d_StartLBA:_llu_LastLBA:_llu
call fcn.0040f530
add esp, 0x18
inc ebx
mov ecx, dword [ebp - 0x1b8]
sub edi, 0xffffff80
inc ecx
mov dword [ebp - 0x1b8], ecx
cmp ecx, 0x80
jl 0x414201
mov dword [ebp - 0x1b8], ebx
cmp ebx, 0x80
mov ebx, dword [ebp - 0x1bc]
jl 0x41427a
push str._FAIL__128_GPT_partition_tables_are_all_used.
jmp 0x41493e
lea ecx, [ebx + 0x410]
mov esi, 0xc
lea edx, [ebp - 0x1a8]
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4142ab
add ecx, 4
add edx, 4
sub esi, 4
jae 0x414290
push str._FAIL__GPT_Partition_1_is_invalid
jmp 0x41493e
mov eax, dword [ebx + 0x420]
mov ecx, dword [ebx + 0x230]
mov dword [ebp - 0x1c8], eax
mov eax, dword [ebx + 0x424]
mov dword [ebp - 0x1dc], eax
mov eax, dword [ebx + 0x428]
add eax, 1
mov dword [ebp - 0x1e4], eax
mov eax, dword [ebx + 0x42c]
adc eax, 0
or edx, 0xffffffff
push 0
push dword [ebp - 0x1c0]
mov dword [ebp - 0x1e0], eax
add ecx, 1
mov eax, dword [ebx + 0x234]
adc eax, 0
mov dword [ebp - 0x1c4], edx
push eax
push ecx
call fcn.0042be70
lea edi, [ebx + 0x4a0]
mov dword [ebp - 0x1b0], eax
mov dword [ebp - 0x1b4], edx
mov ebx, eax
mov dword [ebp - 0x1ac], 1
nop dword [eax]
lea ecx, [edi - 0x10]
mov edx, 0xc
lea esi, [ebp - 0x1a8]
nop
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x414353
add ecx, 4
add esi, 4
sub edx, 4
jae 0x414340
jmp 0x414389
mov ecx, dword [edi + 4]
mov eax, dword [edi]
cmp dword [ebp - 0x1b4], ecx
jb 0x414389
ja 0x414366
cmp ebx, eax
jbe 0x414389
mov edx, dword [ebp - 0x1ac]
push ecx
push eax
push 0
push dword [ebp - 0x1c0]
mov dword [ebp - 0x1c4], edx
call fcn.0042be70
mov ebx, eax
mov dword [ebp - 0x1b4], edx
mov eax, dword [ebp - 0x1ac]
sub edi, 0xffffff80
inc eax
mov dword [ebp - 0x1ac], eax
cmp eax, 0x80
jl 0x414330
mov eax, dword [ebp - 0x1cc]
mov dword [ebp - 0x1b0], ebx
mov ebx, dword [ebp - 0x1bc]
mov edi, dword [eax + 0x10]
mov ecx, dword [eax + 0x14]
mov eax, dword [ebp - 0x1b0]
jmp 0x414533
xor ecx, ecx
mov dword [ebp - 0x1d8], 0
lea edi, [ebx + 0x1c6]
mov dword [esi + 8], 0
mov dword [ebp - 0x1b8], ecx
xor ebx, ebx
mov eax, dword [edi + 4]
test eax, eax
je 0x41440c
push eax
push dword [edi]
lea eax, [ebx + 1]
push eax
push str.MBR_Part_d_SectorStart:_u_SectorCount:_u
call fcn.0040f530
mov ecx, dword [ebp - 0x1b8]
add esp, 0x10
inc ecx
mov dword [ebp - 0x1b8], ecx
inc ebx
add edi, 0x10
cmp ebx, 4
jl 0x4143e4
mov ebx, dword [ebp - 0x1bc]
cmp ecx, 4
jl 0x41442a
push str._FAIL__4_MBR_partition_tables_are_all_used.
jmp 0x41493e
mov eax, dword [ebx + 0x1ca]
test eax, eax
je 0x414939
mov edx, dword [ebx + 0x1c6]
xor edi, edi
xor ecx, ecx
mov dword [ebp - 0x1dc], edi
add eax, edx
mov dword [ebp - 0x1c8], edx
mov dword [ebp - 0x1e4], eax
adc ecx, edi
mov dword [ebp - 0x1c4], 0xffffffff
cmp dword [ebx + 0x1da], 0
mov edi, dword [esi + 0x10]
mov eax, edi
mov dword [ebp - 0x1e0], ecx
mov ecx, dword [esi + 0x14]
mov esi, dword [ebp - 0x1c0]
mov dword [ebp - 0x1ac], ecx
mov dword [ebp - 0x1b0], eax
mov dword [ebp - 0x1b4], ecx
jbe 0x4144bd
mov edx, dword [ebx + 0x1d6]
test ecx, ecx
jb 0x4144bd
ja 0x4144a1
cmp eax, edx
jbe 0x4144bd
mov eax, esi
mov dword [ebp - 0x1c4], 1
mul edx
mov dword [ebp - 0x1b0], eax
mov ecx, edx
mov dword [ebp - 0x1b4], edx
cmp dword [ebx + 0x1ea], 0
jbe 0x4144f2
mov edx, dword [ebx + 0x1e6]
test ecx, ecx
jb 0x4144f2
ja 0x4144d6
cmp eax, edx
jbe 0x4144f2
mov eax, esi
mov dword [ebp - 0x1c4], 2
mul edx
mov ecx, edx
mov dword [ebp - 0x1b0], eax
mov dword [ebp - 0x1b4], ecx
cmp dword [ebx + 0x1fa], 0
jbe 0x414527
mov edx, dword [ebx + 0x1f6]
test ecx, ecx
jb 0x414527
ja 0x41450b
cmp eax, edx
jbe 0x414527
mov eax, esi
mov dword [ebp - 0x1c4], 3
mul edx
mov dword [ebp - 0x1b0], eax
mov dword [ebp - 0x1b4], edx
jmp 0x41452d
mov eax, dword [ebp - 0x1b0]
mov ecx, dword [ebp - 0x1ac]
mov edx, dword [ebp - 0x1c4]
push edx
push dword [ebp - 0x1b4]
push eax
push ecx
push edi
push str.DiskSize:_llu_NextPartStart:_llu_Index:_d
call fcn.0040f530
mov eax, dword [ebp - 0x1b8]
mov ecx, 0x437b08
cmp dword [ebp - 0x1d8], 0
push eax
mov eax, 0x437b0c
cmovne eax, ecx
push eax
push str.Valid_partition_table___s_:_Valid_partition_count:_d
call fcn.0040f530
mov esi, dword [ebp - 0x1c0]
add esp, 0x24
push dword [ebp - 0x1dc]
push dword [ebp - 0x1c8]
push 0
push esi
call fcn.0042be70
push dword [ebp - 0x1e0]
mov edi, eax
mov dword [ebp - 0x1c8], edx
push dword [ebp - 0x1e4]
push 0
push esi
call fcn.0042be70
push dword [ebp - 0x1b4]
mov esi, dword [ebp - 0x1b0]
mov ecx, eax
push esi
mov eax, edx
mov dword [ebp - 0x1ac], ecx
mov edx, dword [ebp - 0x1c8]
push eax
push ecx
mov dword [ebp - 0x1e4], eax
mov ecx, edi
mov eax, edx
shrd ecx, eax, 0xa
shr eax, 0xa
push eax
push ecx
push edx
push edi
push str.Partition_1_start_at:__llu__lluKB__end:_llu__NextPartStart:_llu
call fcn.0040f530
add esp, 0x24
cmp edi, 0x100000
jne 0x414932
cmp dword [ebp - 0x1c8], 0
jne 0x414932
mov ecx, dword [ebp - 0x1b4]
mov edx, esi
sub edx, dword [ebp - 0x1ac]
mov eax, ecx
mov edi, dword [ebp - 0x1e4]
sbb eax, edi
mov dword [ebp - 0x1e4], eax
jne 0x4148e9
cmp edx, 0x2000000
jae 0x4148e9
cmp esi, dword [ebp - 0x1ac]
jne 0x414647
mov eax, str.There_is_no_free_space_after_partition_1
cmp ecx, edi
je 0x41464c
mov eax, str.The_free_space_after_partition_1_is_not_enough
push eax
call fcn.0040f530
mov esi, dword [ebp - 0x1fc]
add esp, 4
xor edi, edi
nop dword [eax]
mov al, byte [esi + edi]
test al, al
je 0x414694
movsx ecx, al
lea edx, [ebp - 0x200]
call fcn.00408490
test eax, eax
js 0x41468e
cmp dword [ebp - 0x200], 0x100000
jne 0x41468e
cmp dword [ebp - 0x1fc], 0
je 0x41469e
inc edi
cmp edi, 0x40
jl 0x414660
push str.Can_not_find_the_logical_drive_for_partition_1
jmp 0x41493e
mov esi, dword [ebp - 0x1cc]
movsx eax, byte [esi + edi + 0x224]
push eax
push str.Find_the_partition_1_logical_drive_is__C:
call fcn.0040f530
movsx eax, byte [esi + edi + 0x224]
push eax
push 0x43a7e0
lea eax, [ebp - 0xc]
push 8
push eax
call fcn.00401010
add esp, 0x18
lea eax, [ebp - 0x1f4]
push eax
lea eax, [ebp - 0x1f0]
push eax
lea eax, [ebp - 0x1c0]
push eax
lea eax, [ebp - 0x1ec]
push eax
lea eax, [ebp - 0xc]
push eax
call dword [ebp - 0x1d4]
test eax, eax
jne 0x41471a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0xc]
push eax
push str.Failed_to_GetDiskFreeSpaceA___s___u
call fcn.0040f530
add esp, 0xc
jmp 0x414946
mov ebx, dword [ebp - 0x1ec]
mov eax, ebx
mov edi, dword [ebp - 0x1c0]
mov esi, dword [ebp - 0x1f0]
mul edi
mov ecx, eax
mov eax, edx
mul esi
mov dword [ebp - 0x1ac], eax
mov eax, ecx
mov ecx, dword [ebp - 0x1ac]
mul esi
add ecx, edx
mov dword [ebp - 0x1d4], eax
push ecx
push eax
push dword [ebp - 0x1f4]
mov dword [ebp - 0x1ac], ecx
push esi
push edi
push ebx
push str.SectorsPerCluster:_u_BytesPerSector:_u_NumberOfFreeClusters:_u_TotalNumberOfClusters:_u
call fcn.0040f530
mov esi, dword [ebp - 0x1d4]
add esp, 0x1c
mov ebx, dword [ebp - 0x1ac]
mov ecx, esi
mov eax, ebx
shrd ecx, eax, 0x1e
shr eax, 0x1e
push eax
push ecx
mov ecx, esi
mov eax, ebx
shrd ecx, eax, 0x14
shr eax, 0x14
push eax
push ecx
push ebx
push esi
lea eax, [ebp - 0xc]
push eax
push str.__s__freespace__llu__lluMB__lluGB
call fcn.0040f530
add esp, 0x20
test ebx, ebx
ja 0x4147c8
jb 0x4147b3
cmp esi, 0x4000000
jae 0x4147c8
push str._FAIL__Free_space_is_not_engough
call fcn.0040f530
mov ebx, dword [ebp - 0x1bc]
jmp 0x414943
push 0x40
lea eax, [ebp - 0x198]
mov byte [ebp - 0xa], 0x5c
push eax
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointA]
mov byte [ebp - 0xa], 0
test eax, eax
jne 0x41480a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0xc]
push eax
push str.GetVolumeNameForVolumeMountPointA_failed___s___u
call fcn.0040f530
mov ebx, dword [ebp - 0x1bc]
add esp, 0xc
jmp 0x414946
lea eax, [ebp - 0x198]
push eax
push 0x40
push dword [ebp - 0x204]
call fcn.0041c016
add esp, 0xc
lea eax, [ebp - 0x198]
push eax
push str.Volume_GUID:___s_
call fcn.0040f530
add esp, 8
lea eax, [ebp - 0x118]
push 0x104
push eax
push 0
push 0
push 0
push 0
push 0
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
test eax, eax
jne 0x414878
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.GetVolumeInformationA_failed__u
call fcn.0040f530
mov ebx, dword [ebp - 0x1bc]
add esp, 8
jmp 0x414946
lea eax, [ebp - 0x118]
push eax
push str.Partition_1_is__s
call fcn.0040f530
lea eax, [ebp - 0x118]
push str.NTFS
push eax
call fcn.0041dd9e
add esp, 0x10
test eax, eax
je 0x4148b6
push str._FAIL__Only_NTFS_is_supported.
call fcn.0040f530
mov ebx, dword [ebp - 0x1bc]
jmp 0x414943
lea eax, [ebp - 0x118]
push eax
push 0x40
push dword [ebp - 0x208]
call fcn.0041c016
add esp, 0xc
push str.PartResizePreCheck_success_...
call fcn.0040f530
mov ebx, dword [ebp - 0x1bc]
mov dword [ebp - 0x1d0], 1
jmp 0x414943
push str.Free_space_after_partition_1_is_enough_for_VTOYEFI_part
call fcn.0040f530
mov esi, dword [ebp - 0x1cc]
add esp, 4
push 0
mov dword [esi + 0x490], 1
push dword [ebp - 0x1c0]
push edi
push dword [ebp - 0x1ac]
call fcn.0042c320
mov dword [esi + 0x518], eax
mov dword [esi + 0x51c], edx
mov dword [ebp - 0x1d0], 1
jmp 0x414946
push str._FAIL__Partition_1_is_not_start_at_1MB
jmp 0x41493e
push str._FAIL__MBR_Partition_1_is_invalid
call fcn.0040f530
add esp, 4
push ebx
call fcn.0041bffb
add esp, 4
push dword [ebp - 0x20c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x1d0]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00417710
mov esp, ebp
pop ebp
ret
push ebx
call fcn.0041bffb
add esp, 4
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00417710
mov esp, ebp
pop ebp
ret