Function at 0x411600
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x444
mov eax, dword [0x448004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x440], 0
xorps xmm0, xmm0
mov dword [ebp - 0x43c], edi
push 0x4416b0
movups xmmword [ebp - 0x24], xmm0
call fcn.00414ac0
mov ebx, dword [edi + 0x10]
add esp, 4
mov edx, dword [edi + 0x14]
mov ecx, ebx
mov esi, 1
call fcn.00434810
movsd xmm1, qword [0x4455a0]
movaps xmm2, xmm0
divsd xmm2, xmm1
mov eax, ebx
and eax, 0x3fffffff
or eax, 0
divsd xmm2, xmm1
divsd xmm2, xmm1
jne 0x41167a
mov eax, dword [edi + 0x14]
shrd ebx, eax, 0x1e
jmp 0x4116bc
movsd xmm3, qword [0x445588]
xor eax, eax
movd xmm1, esi
cvtdq2pd xmm1, xmm1
comisd xmm1, xmm2
jbe 0x41169b
movaps xmm0, xmm1
subsd xmm0, xmm2
jmp 0x4116a2
movaps xmm0, xmm2
subsd xmm0, xmm1
divsd xmm0, xmm1
comisd xmm3, xmm0
ja 0x4116ba
inc eax
add esi, esi
cmp eax, 0xc
jl 0x411684
cvttsd2si ebx, xmm2
jmp 0x4116bc
mov ebx, esi
push ebx
lea eax, [edi + 0xa0]
push eax
lea eax, [edi + 0x20]
push eax
push dword [edi + 4]
push str.PartitionResizeForVentoy_PhyDrive_d____s__s__dGB__
call fcn.00414ac0
add esp, 0x14
push 0x4416b0
call fcn.00414ac0
mov ecx, dword [edi + 0x548]
lea ebx, [edi + 0x550]
mov eax, dword [edi + 0x54c]
add esp, 4
shld eax, ecx, 9
mov dword [ebp - 0x434], ebx
shl ecx, 9
push eax
push ecx
push dword [edi + 0x14]
push dword [edi + 0x10]
push str.Disksize:_llu_Part2Start:_llu
call fcn.00414ac0
add esp, 0x14
cmp byte [ebx + 0x1c2], 0xee
jne 0x411744
cmp dword [ebx + 0x200], 0x20494645
jne 0x411744
cmp dword [ebx + 0x204], 0x54524150
mov dword [ebp - 0x42c], 1
je 0x41174e
mov dword [ebp - 0x42c], 0
mov ecx, 8
call fcn.00418700
cmp dword [edi + 0x4b0], 0
jne 0x411844
push str.Need_to_shrink_the_volume
call fcn.00414ac0
movzx eax, byte [edi + 0x4c0]
lea edx, [edi + 0x4c1]
push ecx
push dword [edi + 0x4bc]
mov ecx, dword [edi + 4]
push dword [edi + 0x4b8]
push eax
call fcn.00401cc0
add esp, 0x14
test eax, eax
je 0x4118af
push str.Shrink_volume_success__now_check_again
call fcn.00414ac0
mov ecx, dword [edi + 4]
mov dl, 1
push 1
call fcn.0040cd60
mov esi, eax
add esp, 8
cmp esi, 0xffffffff
jne 0x4117cf
push str.Failed_to_GetPhysicalHandle_for_update.
call fcn.00414ac0
add esp, 4
jmp 0x411cc8
push 0
lea eax, [ebp - 0x440]
push eax
push 0
push 0
push 0
push 0
push 0x70140
push esi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor ecx, ecx
call fcn.0041afe0
test eax, eax
je 0x411897
cmp dword [edi + 0x4b0], 0
je 0x411897
push str.Recheck_after_Shrink_volume_success
call fcn.00414ac0
mov ecx, dword [edi + 0x548]
add esp, 4
mov eax, dword [edi + 0x54c]
shld eax, ecx, 9
push eax
shl ecx, 9
push ecx
push dword [edi + 0x14]
push dword [edi + 0x10]
push str.After_shrink_Disksize:_llu_Part2Start:_llu
call fcn.00414ac0
add esp, 0x14
push ecx
mov ecx, dword [edi + 4]
mov dl, 1
push 1
call fcn.0040cd60
add esp, 8
mov dword [ebp - 0x438], eax
cmp eax, 0xffffffff
je 0x4117bd
mov ecx, 0xc
call fcn.00418700
push dword [edi + 0x54c]
mov esi, dword [ebp - 0x438]
mov ecx, esi
push dword [edi + 0x548]
call fcn.0040eb50
add esp, 8
test eax, eax
je 0x4118c1
mov eax, str.FormatPart2Fat_failed.
jmp 0x411cb3
push dword [edi + 0x4b0]
push str.Recheck_after_Shrink_volume_failed__u
call fcn.00414ac0
add esp, 8
jmp 0x411cc8
push str.Shrink_volume_failed
call fcn.00414ac0
add esp, 4
jmp 0x411cc8
mov ecx, 0x2e
call fcn.00418700
push str.Writing_Boot_Image_.............................
call fcn.00414ac0
mov edx, dword [ebp - 0x42c]
add esp, 4
mov ecx, esi
call fcn.0040eff0
test eax, eax
je 0x4118f3
mov eax, str.WriteGrubStage1ToPhyDrive_failed.
jmp 0x411cb3
mov ecx, 0x2f
call fcn.00418700
push str.Writing_partition_table_.............................
call fcn.00414ac0
add esp, 4
lea ecx, [ebp - 0x228]
call fcn.00416320
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.ole32.dll_CoCreateGuid]
cmp dword [ebp - 0x42c], 0
lea esi, [ebp - 0x228]
movups xmm0, xmmword [ebp - 0x14]
mov ecx, 0x6e
mov edi, ebx
movups xmmword [ebp - 0xa8], xmm0
rep movsd dword es:[edi], dword [esi]
jne 0x411a1a
mov esi, 1
lea eax, [ebx + 0x1da]
cmp dword [eax], 0
je 0x411969
inc esi
add eax, 0x10
cmp esi, 4
jl 0x411951
mov eax, str.Can_not_find_MBR_free_partition_table
jmp 0x411cb3
lea eax, [esi - 1]
mov dword [ebp - 0x430], eax
test eax, eax
jle 0x4119b0
lea edi, [ebx + 0x1ce]
shl eax, 4
mov ebx, dword [ebp - 0x430]
add edi, eax
lea eax, [esi + 1]
push eax
push esi
push str.Move_MBR_partition_table__d______d
call fcn.00414ac0
movups xmm0, xmmword [edi - 0x10]
dec ebx
lea edi, [edi - 0x10]
add esp, 0xc
dec esi
movups xmmword [edi + 0x10], xmm0
test ebx, ebx
jg 0x411987
mov ebx, dword [ebp - 0x434]
mov edi, dword [ebp - 0x43c]
lea esi, [ebx + 0x1ce]
xorps xmm0, xmm0
mov edx, 0x10000
movups xmmword [esi], xmm0
push esi
push dword [edi + 0x14]
mov ecx, dword [edi + 0x548]
push dword [edi + 0x10]
call fcn.00415b20
add esp, 0xc
mov byte [ebx + 0x1be], 0x80
mov byte [ebx + 0x1d2], 0xef
mov edx, ebx
mov ebx, dword [ebp - 0x438]
mov ecx, ebx
mov byte [esi], 0
push 0x200
push 0
push 0
call fcn.0040c9a0
add esp, 0xc
test eax, eax
jne 0x411d45
mov eax, str.Legacy_BIOS_write_MBR_failed
jmp 0x411cb3
mov edi, dword [ebp - 0x434]
mov ebx, 1
lea eax, [edi + 0x490]
mov dword [ebp - 0x42c], eax
mov ecx, eax
lea edx, [ebp - 0x24]
mov esi, 0xc
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x411c92
add ecx, 4
add edx, 4
sub esi, 4
jae 0x411a40
lea esi, [ebx - 1]
mov dword [ebp - 0x430], esi
test esi, esi
jle 0x411ab9
add esi, 9
shl esi, 7
add esi, edi
mov dword [ebp - 0x42c], esi
lea eax, [ebx + 1]
push eax
push ebx
push str.Move_GPT_partition_table__d______d
call fcn.00414ac0
mov edi, dword [ebp - 0x42c]
add esi, 0xffffff80
mov eax, dword [ebp - 0x430]
mov ecx, 0x20
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x42c]
dec eax
add esi, 0xffffff80
mov dword [ebp - 0x430], eax
add esp, 0xc
mov dword [ebp - 0x42c], esi
dec ebx
test eax, eax
jg 0x411a70
mov edi, dword [ebp - 0x434]
push 0x80
lea esi, [edi + 0x480]
mov byte [edi + 0x5c], 0x22
push 0
push esi
call fcn.00420f90
movups xmm0, xmmword [0x4488d8]
add esp, 0xc
lea eax, [edi + 0x490]
movups xmmword [esi], xmm0
push eax
call dword [sym.imp.ole32.dll_CoCreateGuid]
mov ecx, dword [edi + 0x428]
lea edx, [edi + 0x400]
mov eax, dword [edi + 0x42c]
add ecx, 1
mov dword [edi + 0x4a0], ecx
adc eax, 0
mov dword [edi + 0x4b0], 1
mov dword [edi + 0x4a4], eax
add ecx, 0xffff
mov dword [edi + 0x4a8], ecx
adc eax, 0
mov dword [edi + 0x4b4], 0xc0000000
mov dword [edi + 0x4ac], eax
movq xmm0, qword [str.VTOYEFI]
movq qword [edi + 0x4b8], xmm0
mov eax, dword [0x43f464]
mov dword [edi + 0x4c0], eax
mov ax, word [0x43f468]
mov dword [ebp - 0x430], edx
or edx, 0xffffffff
mov word [edi + 0x4c4], ax
xor ebx, ebx
mov edi, dword [ebp - 0x430]
lea esi, [edi + 2]
movzx ecx, byte [ebx + edi]
lea esi, [esi + 4]
movzx eax, dl
add ebx, 4
xor ecx, eax
shr edx, 8
xor edx, dword [ecx*4 + 0x43b3a0]
movzx ecx, byte [esi - 5]
movzx eax, dl
xor ecx, eax
shr edx, 8
movzx eax, byte [esi - 4]
xor edx, dword [ecx*4 + 0x43b3a0]
movzx ecx, dl
xor ecx, eax
shr edx, 8
xor edx, dword [ecx*4 + 0x43b3a0]
movzx ecx, byte [esi - 3]
movzx eax, dl
xor ecx, eax
shr edx, 8
xor edx, dword [ecx*4 + 0x43b3a0]
cmp ebx, 0x4000
jb 0x411b73
mov edi, dword [ebp - 0x434]
not edx
xor esi, esi
mov ebx, dword [edi + 0x20c]
mov dword [edi + 0x258], edx
or edx, 0xffffffff
mov dword [edi + 0x210], 0
test ebx, ebx
je 0x411c10
movzx ecx, byte [esi + edi + 0x200]
inc esi
movzx eax, dl
xor ecx, eax
shr edx, 8
xor edx, dword [ecx*4 + 0x43b3a0]
cmp esi, ebx
jb 0x411bf4
push dword [edi + 0x21c]
not edx
push dword [edi + 0x218]
mov dword [edi + 0x210], edx
push str.pGPT__Head.EfiStartLBA_llu
call fcn.00414ac0
add esp, 0xc
push dword [edi + 0x224]
push dword [edi + 0x220]
push str.pGPT__Head.EfiBackupLBA_llu
call fcn.00414ac0
add esp, 0xc
lea edx, [ebp - 0x428]
mov ecx, edi
call fcn.004161e0
mov ecx, dword [edi + 0x220]
lea edx, [ebp - 0x428]
mov eax, dword [edi + 0x224]
mov ebx, dword [ebp - 0x438]
shld eax, ecx, 9
push 0x200
shl ecx, 9
push eax
push ecx
mov ecx, ebx
call fcn.0040c9a0
add esp, 0xc
test eax, eax
jne 0x411cde
mov eax, str.UEFI_write_backup_head_failed
jmp 0x411cb3
mov eax, dword [ebp - 0x42c]
inc ebx
sub eax, 0xffffff80
mov dword [ebp - 0x42c], eax
cmp ebx, 0x80
jl 0x411a31
mov eax, str.Can_not_find_GPT_free_partition_table
push eax
call fcn.00414ac0
add esp, 4
push dword [ebp - 0x438]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041fa5e
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x220]
lea edx, [edi + 0x400]
mov eax, dword [edi + 0x224]
shld eax, ecx, 9
push 0x4000
shl ecx, 9
add ecx, 0xffffc000
adc eax, 0xffffffff
push eax
push ecx
mov ecx, ebx
call fcn.0040c9a0
add esp, 0xc
test eax, eax
jne 0x411d1c
mov eax, str.UEFI_write_backup_partition_table_failed
jmp 0x411cb3
push 0x4400
push 0
push 0
mov edx, edi
mov ecx, ebx
call fcn.0040c9a0
add esp, 0xc
test eax, eax
jne 0x411d3f
mov eax, str.UEFI_write_MBR__Main_partition_table_failed
jmp 0x411cb3
mov edi, dword [ebp - 0x43c]
push 0
lea eax, [ebp - 0x440]
push eax
push 0
push 0
push 0
push 0
push 0x70140
push ebx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x7d0
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x449410], 0
je 0x411d9d
push str._Ventoy_non_destructive_CLI_installation_successfully_finished.
call fcn.00414ac0
add esp, 4
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 esi, dword [edi + 4]
push str._Now_Refresh_PhyDrive_
call fcn.00414ac0
add esp, 4
push dword [0x449400]
call fcn.0042422d
add esp, 4
mov dword [0x449400], 0
mov dword [0x449404], 0
push str._n_Enum_All_PhyDrives_
call fcn.00414ac0
add esp, 4
push 0x24a800
call fcn.0042442e
add esp, 4
mov dword [0x449400], eax
test eax, eax
jne 0x411e01
push str.Failed_to_alloc_phy_drive_memory
call fcn.00414ac0
add esp, 4
jmp 0x411e20
push 0x24a800
push 0
push eax
call fcn.00420f90
add esp, 0xc
call fcn.0040d1c0
call fcn.004170b0
call fcn.00416e00
mov edx, dword [0x449404]
xor ecx, ecx
test edx, edx
je 0x411e40
mov eax, dword [0x449400]
cmp dword [eax + 4], esi
je 0x411e6d
inc ecx
add eax, 0x4950
cmp ecx, edx
jb 0x411e31
push str._Ventoy_non_destructive_installation_successfully_finished__not_found_
call fcn.00414ac0
add esp, 4
mov ecx, dword [0x44b688]
mov edx, esi
call fcn.00419ce0
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
test eax, eax
je 0x411e40
add eax, 0x280
cmp byte [eax], 0
jne 0x411e8d
push str.After_process_the_Ventoy_version_is_still_invalid
call fcn.00414ac0
add esp, 4
jmp 0x411cc8
push eax
push str._Ventoy_non_destructive_installation_successfully_finished___s_
call fcn.00414ac0
add esp, 8
jmp 0x411e4d