Function at 0x41afe0
Capabilities:
Get common file path
Get disk information
Get disk size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x314
mov eax, dword [0x448004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
xorps xmm0, xmm0
mov dword [ebp - 0x2e4], 0
push edi
push str.PartResizePreCheck_...
mov ebx, ecx
movlpd qword [ebp - 0xc], xmm0
movups xmmword [ebp - 0x2b0], xmm0
call fcn.00414ac0
add esp, 4
cmp dword [0x449410], 0
je 0x41b07d
mov edi, dword [0x44af4c]
mov dword [ebp - 0x2c8], edi
mov dword [edi + 0x4b0], 0
lea eax, [edi + 0x4c1]
mov dword [ebp - 0x304], eax
mov byte [eax], 0
lea eax, [edi + 0x501]
mov dword [ebp - 0x308], eax
mov byte [eax], 0
test ebx, ebx
je 0x41b061
mov dword [ebx], edi
cmp byte [edi + 0x280], 0
je 0x41b0f6
push str._FAIL__No_need_to_resize_part
call fcn.00414ac0
jmp 0x41bab4
push 0
push 0
push 0x147
push dword [0x44b650]
call dword [sym.imp.USER32.dll_SendMessageW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x41b0a8
push str.Failed_to_get_combox_sel
call fcn.00414ac0
jmp 0x41bab4
mov edx, dword [0x449404]
xor eax, eax
test edx, edx
je 0x41bab7
mov edi, dword [0x449400]
mov dword [ebp - 0x2c8], edi
mov ecx, dword [edi]
test ecx, ecx
js 0x41b0d2
cmp ecx, esi
je 0x41b033
inc eax
add edi, 0x4950
mov dword [ebp - 0x2c8], edi
cmp eax, edx
jb 0x41b0c4
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041fa5e
mov esp, ebp
pop ebp
ret
mov al, byte [edi + 0x22c]
test al, al
jne 0x41b10f
push str._FAIL__No_logical_drive_letter_found_for_this_disk
call fcn.00414ac0
jmp 0x41bab4
movsx eax, al
push eax
push 0x4449bc
lea eax, [ebp - 0xc]
push 8
push eax
call fcn.00401010
add esp, 0x10
lea eax, [ebp - 0x300]
push eax
lea eax, [ebp - 0x2fc]
push eax
lea eax, [ebp - 0x2c0]
push eax
lea eax, [ebp - 0x2f8]
push eax
lea eax, [ebp - 0xc]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
mov dword [ebp - 0x2e8], eax
call eax
test eax, eax
jne 0x41b182
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0xc]
push eax
push str.Failed_to_GetDiskFreeSpaceA___s___u
call fcn.00414ac0
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041fa5e
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x2c0]
push str.BytesPerSector_for_this_disk_is__u
call fcn.00414ac0
add esp, 8
mov byte [ebp - 0x2a0], 0
lea eax, [ebp - 0x2a0]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
xor esi, esi
mov byte [ebp - 0x118], 0
mov byte [ebp - 0xc], 0
xor ebx, ebx
lea ecx, [esi + 1]
mov al, byte [edi + ebx + 0x22c]
test al, al
je 0x41b214
cmp byte [ebp - 0x29f], 0x3a
jne 0x41b1dd
cmp byte [ebp - 0x2a0], al
cmove esi, ecx
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.00424248
inc ebx
add esp, 0x1c
mov ecx, 1
cmp ebx, 0x40
jl 0x41b1c0
lea eax, [ebp - 0x2a0]
push eax
lea eax, [ebp - 0x118]
push eax
push str.Logical_drives_in_this_disk:__s__WinDir:_s_
call fcn.00414ac0
add esp, 0xc
test esi, esi
je 0x41b242
push str._FAIL__You_can_not_do_non_destructive_installation_on_Windows_system_disk.
call fcn.00414ac0
jmp 0x41bab4
push 0x4400
call fcn.0042442e
mov ebx, eax
add esp, 4
mov dword [ebp - 0x2bc], ebx
test ebx, ebx
je 0x41bab7
push ecx
mov ecx, dword [edi + 4]
xor dl, dl
push 0
call fcn.0040cd60
add esp, 8
mov dword [ebp - 0x30c], eax
cmp eax, 0xffffffff
je 0x41baae
push 0
lea ecx, [ebp - 0x310]
push ecx
push 0x4400
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x41b2b3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0
push str.Failed_to_read_disk__u__u
call fcn.00414ac0
add esp, 0xc
jmp 0x41ba82
push 0x4400
lea eax, [edi + 0x550]
push ebx
push eax
call fcn.00421640
add esp, 0xc
cmp byte [ebx + 0x1c2], 0xee
jne 0x41b4ea
cmp dword [ebx + 0x200], 0x20494645
jne 0x41b4ea
cmp dword [ebx + 0x204], 0x54524150
jne 0x41b4ea
mov dword [edi + 8], 1
xor edi, edi
mov dword [ebp - 0x2f0], 1
add ebx, 0x428
mov dword [ebp - 0x2b4], edi
nop dword [eax]
nop dword [eax + eax]
lea edx, [ebx - 0x18]
mov esi, 0xc
lea eax, [ebp - 0x2b0]
nop
mov ecx, dword [edx]
cmp ecx, dword [eax]
jne 0x41b343
add edx, 4
add eax, 4
sub esi, 4
jae 0x41b330
jmp 0x41b364
push dword [ebx + 4]
mov eax, dword [ebp - 0x2b4]
push dword [ebx]
inc eax
push dword [ebx - 4]
push dword [ebx - 8]
push eax
push str.GPT_Part_d_StartLBA:_llu_LastLBA:_llu
call fcn.00414ac0
add esp, 0x18
inc edi
mov ecx, dword [ebp - 0x2b4]
sub ebx, 0xffffff80
inc ecx
mov dword [ebp - 0x2b4], ecx
cmp ecx, 0x80
jl 0x41b320
mov ebx, dword [ebp - 0x2bc]
mov dword [ebp - 0x2c4], edi
cmp edi, 0x80
jl 0x41b39a
push str._FAIL__128_GPT_partition_tables_are_all_used.
jmp 0x41ba7a
lea ecx, [ebx + 0x410]
mov esi, 0xc
lea edx, [ebp - 0x2b0]
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x41b3cb
add ecx, 4
add edx, 4
sub esi, 4
jae 0x41b3b0
push str._FAIL__GPT_Partition_1_is_invalid
jmp 0x41ba7a
mov eax, dword [ebx + 0x420]
mov edi, dword [ebx + 0x230]
mov dword [ebp - 0x2cc], eax
mov eax, dword [ebx + 0x424]
mov dword [ebp - 0x2f4], eax
mov eax, dword [ebx + 0x428]
add eax, 1
mov dword [ebp - 0x2dc], eax
mov eax, dword [ebx + 0x42c]
adc eax, 0
or esi, 0xffffffff
mov dword [ebp - 0x2d4], eax
add edi, 1
mov eax, dword [ebx + 0x234]
adc eax, 0
mov dword [ebp - 0x2d0], esi
mov dword [ebp - 0x2b8], eax
lea eax, [ebx + 0x4a0]
mov dword [ebp - 0x2b4], eax
lea ebx, [esi + 2]
lea ecx, [eax - 0x10]
mov esi, 0xc
lea edx, [ebp - 0x2b0]
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x41b4bc
add ecx, 4
add edx, 4
sub esi, 4
jae 0x41b440
mov eax, dword [ebp - 0x2b4]
mov ecx, dword [ebp - 0x2b8]
inc ebx
sub eax, 0xffffff80
mov dword [ebp - 0x2b4], eax
cmp ebx, 0x80
jl 0x41b431
mov esi, dword [ebp - 0x2c0]
push ecx
push edi
push 0
push esi
call fcn.004342f0
mov edi, dword [ebp - 0x2c8]
mov ecx, eax
push 0
mov eax, edx
mov dword [ebp - 0x2b8], ecx
push esi
mov edx, dword [edi + 0x10]
mov edi, dword [edi + 0x14]
push eax
push ecx
mov dword [ebp - 0x2b4], eax
mov dword [ebp - 0x2ec], edx
call fcn.004347a0
mov ebx, dword [ebp - 0x2bc]
mov esi, dword [ebp - 0x2d0]
jmp 0x41b63f
mov eax, dword [ebp - 0x2b4]
mov edx, dword [eax + 4]
mov ecx, dword [eax]
cmp dword [ebp - 0x2b8], edx
jb 0x41b457
ja 0x41b4d5
cmp edi, ecx
jbe 0x41b457
mov edi, ecx
mov dword [ebp - 0x2d0], ebx
mov ecx, edx
mov dword [ebp - 0x2b8], ecx
jmp 0x41b45d
xor ecx, ecx
mov dword [ebp - 0x2f0], 0
lea esi, [ebx + 0x1c6]
mov dword [edi + 8], 0
mov dword [ebp - 0x2c4], ecx
xor ebx, ebx
nop dword [eax + eax]
mov eax, dword [esi + 4]
test eax, eax
je 0x41b538
push eax
push dword [esi]
lea eax, [ebx + 1]
push eax
push str.MBR_Part_d_SectorStart:_u_SectorCount:_u
call fcn.00414ac0
mov ecx, dword [ebp - 0x2c4]
add esp, 0x10
inc ecx
mov dword [ebp - 0x2c4], ecx
inc ebx
add esi, 0x10
cmp ebx, 4
jl 0x41b510
mov ebx, dword [ebp - 0x2bc]
cmp ecx, 4
jl 0x41b556
push str._FAIL__4_MBR_partition_tables_are_all_used.
jmp 0x41ba7a
mov eax, dword [ebx + 0x1ca]
test eax, eax
je 0x41ba75
mov edx, dword [ebx + 0x1c6]
xor esi, esi
xor ecx, ecx
mov dword [ebp - 0x2cc], edx
add eax, edx
mov dword [ebp - 0x2f4], esi
push esi
adc ecx, esi
mov dword [ebp - 0x2dc], eax
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x2d4], ecx
mov ecx, dword [edi + 0x14]
mov edi, dword [ebp - 0x2c0]
push edi
push ecx
push eax
mov dword [ebp - 0x2ec], eax
mov dword [ebp - 0x2d0], ecx
call fcn.004347a0
cmp dword [ebx + 0x1da], esi
jbe 0x41b5ce
mov ecx, dword [ebx + 0x1d6]
test edx, edx
jb 0x41b5ce
ja 0x41b5c3
cmp eax, ecx
jbe 0x41b5ce
mov esi, 1
mov eax, ecx
xor edx, edx
jmp 0x41b5d1
or esi, 0xffffffff
cmp dword [ebx + 0x1ea], 0
jbe 0x41b5f3
mov ecx, dword [ebx + 0x1e6]
test edx, edx
jb 0x41b5f3
ja 0x41b5ea
cmp eax, ecx
jbe 0x41b5f3
mov esi, 2
mov eax, ecx
xor edx, edx
cmp dword [ebx + 0x1fa], 0
jbe 0x41b615
mov ecx, dword [ebx + 0x1f6]
test edx, edx
jb 0x41b615
ja 0x41b60c
cmp eax, ecx
jbe 0x41b615
mov esi, 3
mov eax, ecx
xor edx, edx
push edx
push eax
push 0
push edi
call fcn.004342f0
push 0
mov ecx, eax
mov dword [ebp - 0x2b8], eax
mov eax, edx
push edi
push eax
push ecx
mov dword [ebp - 0x2b4], eax
call fcn.004347a0
mov edi, dword [ebp - 0x2d0]
push esi
push edx
push eax
push dword [ebp - 0x2b4]
push dword [ebp - 0x2b8]
push edi
push dword [ebp - 0x2ec]
push str.DiskSize:_llu_NextPartStart:_llu_LBA:_llu__Index:_d
call fcn.00414ac0
cmp dword [ebp - 0x2f0], 0
mov ecx, 0x43f9d4
push dword [ebp - 0x2c4]
mov eax, 0x43f9d0
cmovne eax, ecx
push eax
push str.Valid_partition_table___s_:_Valid_partition_count:_d
call fcn.00414ac0
mov esi, dword [ebp - 0x2c0]
add esp, 0x2c
push dword [ebp - 0x2f4]
push dword [ebp - 0x2cc]
push 0
push esi
call fcn.004342f0
push dword [ebp - 0x2d4]
mov edi, eax
mov dword [ebp - 0x2cc], edx
push dword [ebp - 0x2dc]
push 0
push esi
call fcn.004342f0
push dword [ebp - 0x2b4]
mov esi, edx
mov dword [ebp - 0x2dc], eax
push dword [ebp - 0x2b8]
mov edx, dword [ebp - 0x2cc]
mov ecx, edi
push esi
push eax
mov eax, edx
mov dword [ebp - 0x2d4], esi
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.00414ac0
add esp, 0x24
cmp edi, 0x100000
jne 0x41ba6e
cmp dword [ebp - 0x2cc], 0
jne 0x41ba6e
mov edx, dword [ebp - 0x2dc]
mov eax, esi
mov esi, dword [ebp - 0x2c8]
mov ecx, edx
mov edi, dword [ebp - 0x2d4]
add ecx, 0xfff00000
adc eax, 0xffffffff
mov dword [esi + 0x4bc], eax
mov eax, dword [ebp - 0x2b8]
mov dword [esi + 0x4b8], ecx
sub eax, edx
mov ecx, dword [ebp - 0x2b4]
mov dword [ebp - 0x2b4], ecx
sbb dword [ebp - 0x2b4], edi
jne 0x41ba24
cmp eax, 0x2000000
jae 0x41ba24
cmp dword [ebp - 0x2b8], edx
jne 0x41b77b
mov eax, str.There_is_no_free_space_after_partition_1
cmp ecx, edi
je 0x41b780
mov eax, str.The_free_space_after_partition_1_is_not_enough
push eax
call fcn.00414ac0
add esp, 4
xor edi, edi
nop dword [eax + eax]
mov al, byte [esi + edi + 0x22c]
test al, al
je 0x41b7c8
movsx ecx, al
lea edx, [ebp - 0x2e0]
call fcn.0040d050
test eax, eax
js 0x41b7c2
cmp dword [ebp - 0x2e0], 0x100000
jne 0x41b7c2
cmp dword [ebp - 0x2dc], 0
je 0x41b7d2
inc edi
cmp edi, 0x40
jl 0x41b790
push str.Can_not_find_the_logical_drive_for_partition_1
jmp 0x41ba7a
movsx eax, byte [edi + esi + 0x22c]
push eax
push str.Find_the_partition_1_logical_drive_is__C:
call fcn.00414ac0
mov al, byte [edi + esi + 0x22c]
mov byte [esi + 0x4c0], al
movsx eax, byte [edi + esi + 0x22c]
push eax
push 0x4449bc
lea eax, [ebp - 0xc]
push 8
push eax
call fcn.00401010
add esp, 0x18
lea eax, [ebp - 0x300]
push eax
lea eax, [ebp - 0x2fc]
push eax
lea eax, [ebp - 0x2c0]
push eax
lea eax, [ebp - 0x2f8]
push eax
lea eax, [ebp - 0xc]
push eax
call dword [ebp - 0x2e8]
test eax, eax
jne 0x41b855
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0xc]
push eax
push str.Failed_to_GetDiskFreeSpaceA___s___u
call fcn.00414ac0
add esp, 0xc
jmp 0x41ba82
mov ebx, dword [ebp - 0x2f8]
mov eax, ebx
mov edi, dword [ebp - 0x2c0]
mov esi, dword [ebp - 0x2fc]
mul edi
mov ecx, eax
mov eax, edx
mul esi
mov dword [ebp - 0x2b4], eax
mov eax, ecx
mov ecx, dword [ebp - 0x2b4]
mul esi
add ecx, edx
mov dword [ebp - 0x2e8], eax
push ecx
push eax
push dword [ebp - 0x300]
mov dword [ebp - 0x2b4], ecx
push esi
push edi
push ebx
push str.SectorsPerCluster:_u_BytesPerSector:_u_NumberOfFreeClusters:_u_TotalNumberOfClusters:_u
call fcn.00414ac0
mov esi, dword [ebp - 0x2e8]
add esp, 0x1c
mov ebx, dword [ebp - 0x2b4]
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.00414ac0
add esp, 0x20
test ebx, ebx
ja 0x41b903
jb 0x41b8ee
cmp esi, 0x4000000
jae 0x41b903
push str._FAIL__Free_space_is_not_engough
call fcn.00414ac0
mov ebx, dword [ebp - 0x2bc]
jmp 0x41ba7f
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 0x41b945
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0xc]
push eax
push str.GetVolumeNameForVolumeMountPointA_failed___s___u
call fcn.00414ac0
mov ebx, dword [ebp - 0x2bc]
add esp, 0xc
jmp 0x41ba82
lea eax, [ebp - 0x198]
push eax
push 0x40
push dword [ebp - 0x304]
call fcn.004241d3
add esp, 0xc
lea eax, [ebp - 0x198]
push eax
push str.Volume_GUID:___s_
call fcn.00414ac0
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 0x41b9b3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.GetVolumeInformationA_failed__u
call fcn.00414ac0
mov ebx, dword [ebp - 0x2bc]
add esp, 8
jmp 0x41ba82
lea eax, [ebp - 0x118]
push eax
push str.Partition_1_is__s
call fcn.00414ac0
lea eax, [ebp - 0x118]
push 0x43ffd8
push eax
call fcn.0042622f
add esp, 0x10
test eax, eax
je 0x41b9f1
push str._FAIL__Only_NTFS_is_supported.
call fcn.00414ac0
mov ebx, dword [ebp - 0x2bc]
jmp 0x41ba7f
lea eax, [ebp - 0x118]
push eax
push 0x40
push dword [ebp - 0x308]
call fcn.004241d3
add esp, 0xc
push str.PartResizePreCheck_success_...
call fcn.00414ac0
mov ebx, dword [ebp - 0x2bc]
mov dword [ebp - 0x2e4], 1
jmp 0x41ba7f
push dword [ebp - 0x2b4]
push eax
push str.Free_space_after_partition_1___llu__is_enough_for_VTOYEFI_part
call fcn.00414ac0
add esp, 0xc
mov dword [esi + 0x4b0], 1
push 0
push dword [ebp - 0x2c0]
push edi
push dword [ebp - 0x2dc]
call fcn.004347a0
mov dword [esi + 0x548], eax
mov dword [esi + 0x54c], edx
mov dword [ebp - 0x2e4], 1
jmp 0x41ba82
push str._FAIL__Partition_1_is_not_start_at_1MB
jmp 0x41ba7a
push str._FAIL__MBR_Partition_1_is_invalid
call fcn.00414ac0
add esp, 4
push ebx
call fcn.0042422d
add esp, 4
push dword [ebp - 0x30c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x2e4]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041fa5e
mov esp, ebp
pop ebp
ret
push ebx
call fcn.0042422d
add esp, 4
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041fa5e
mov esp, ebp
pop ebp
ret