Function at 0x140010190
Capabilities:
Print debug messages
Read file on windows
Write file on windows

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xa8
xor ebx, ebx
mov r14, 0xffffffffffffffff
mov qword [rbp - 0x31], r14
mov edi, edx
mov qword [rbp - 0x29], rbx
mov r15, rcx
test edx, edx
je 0x1400101d0
mov rsi, qword [0x1401e9080]
jmp 0x1400101e6
mov rsi, qword [0x1401e8f30]
cmp qword [0x1401e9080], rsi
cmovb rsi, qword [0x1401e9080]
mov edx, dword [0x1401e9090]
mov r12, rbx
mov qword [rbp - 0x21], rsi
mov r13d, ebx
mov qword [rbp - 0x19], rsi
mov qword [rbp - 0x49], rbx
mov qword [rbp - 0x39], rbx
mov qword [rbp - 0x41], rbx
mov dword [rbp + 0x77], ebx
cmp edx, 0x200
jae 0x140010224
lea rcx, str.Unexpected_sector_size___d____Aborting
call fcn.14004f2f0
xor eax, eax
jmp 0x140011252
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x140010243
lea rcx, str.Warning:_Unable_to_rewind_image_position___wrong_data_might_be_copied_
call fcn.14004f2f0
xor r9d, r9d
mov dword [rsp + 0x20], ebx
xor r8d, r8d
xor edx, edx
mov ecx, r14d
call fcn.140066570
test edi, edi
je 0x14001087f
cmp dword [0x14019f598], ebx
lea rax, str.Fast_zeroing_drive:
lea rcx, str.Zeroing_drive:
cmovne rcx, rax
call fcn.14004f2f0
mov ecx, dword [0x1401e9090]
xor edx, edx
lea rax, [rcx + 0x1ffffff]
div rcx
mov edx, ecx
mov rsi, rax
imul esi, ecx
mov ecx, esi
mov r14d, esi
call fcn.1400c40ec
mov qword [rbp - 0x49], rax
mov r15, rax
test rax, rax
jne 0x1400102ce
lea rcx, str.Could_not_allocate_disk_zeroing_buffer
mov dword [0x14019f120], 0xc0030008
call fcn.14004f2f0
mov r14, qword [rbp - 0x31]
mov r13, rbx
jmp 0x1400108e9
mov ecx, dword [0x1401e9090]
xor edx, edx
div rcx
test rdx, rdx
je 0x1400102f7
mov r8d, 0x49f
lea rdx, str.D:_a_rufus_rufus_src_format.c
lea rcx, str._uintptr_t_buffer___SelectedDrive.SectorSize__0
call fcn.1400fbe54
mov edi, dword [0x14019f598]
mov r8, r14
mov eax, edi
mov rcx, r15
neg eax
sbb edx, edx
movzx edx, dl
call fcn.140136540
test edi, edi
je 0x14001037a
mov edx, dword [0x1401e9090]
mov rcx, r14
call fcn.1400c40ec
mov qword [rbp - 0x39], rax
mov rdi, rax
test rax, rax
jne 0x140010351
lea rcx, str.Could_not_allocate_disk_comparison_buffer
mov dword [0x14019f120], 0xc0030008
call fcn.14004f2f0
mov r14, qword [rbp - 0x31]
mov r13, rbx
jmp 0x1400108ec
mov ecx, dword [0x1401e9090]
xor edx, edx
div rcx
test rdx, rdx
je 0x14001037a
mov r8d, 0x4ab
lea rdx, str.D:_a_rufus_rufus_src_format.c
lea rcx, str._uintptr_t_cmp_buffer___SelectedDrive.SectorSize__0
call fcn.1400fbe54
mov dword [rbp - 0x29], esi
mov r14, rbx
mov rsi, qword [rbp - 0x19]
mov dword [rbp + 0x6f], ebx
test rsi, rsi
je 0x14001061c
cmp dword [0x14019f598], ebx
mov eax, 0xcea
mov edx, 0xcd6
mov dword [rsp + 0x20], ebx
cmovne edx, eax
mov r9, rsi
mov r8, r14
mov ecx, 4
call fcn.140066570
xor edx, edx
lea rax, [r14 + r14*4]
shl rax, 4
div rsi
mov r15, rax
cmp rax, r12
jbe 0x1400104da
cmp r12, 0x50
jae 0x1400104d6
mov dword [rsp + 0x28], ebx
lea r8, [0x140158df0]
mov r9d, 0xffffffff
mov qword [rsp + 0x20], rbx
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rsi, eax
cmp esi, 1
jle 0x140010449
mov rcx, rsi
mov edx, 2
call fcn.1400c4f6c
mov rdi, rax
test rax, rax
je 0x140010449
mov dword [rsp + 0x28], esi
lea r8, [0x140158df0]
mov r9d, 0xffffffff
mov qword [rsp + 0x20], rax
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp eax, esi
je 0x14001044c
mov rcx, rdi
call fcn.1400e8c70
mov rdi, rbx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [0x14019f648]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x1400104c2
mov r9d, 0x7ffffffe
mov edx, 0xb1
mov r8d, r9d
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x14019f648]
mov r9, rdi
xor r8d, r8d
mov edx, 0xc2
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x14019f648]
xor r9d, r9d
xor r8d, r8d
mov edx, 0xba
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x14019f648]
xor r8d, r8d
movsxd r9, eax
mov edx, 0xb6
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, rdi
call fcn.1400e8c70
inc r12
cmp r15, r12
ja 0x1400103d0
mov rsi, qword [rbp - 0x19]
mov r8d, dword [rbp - 0x29]
lea rax, [r14 + r8]
cmp rax, rsi
jbe 0x1400104f1
mov r8d, esi
sub r8d, r14d
mov dword [rbp - 0x29], r8d
mov ecx, dword [0x1401e9090]
xor edx, edx
mov eax, r8d
div ecx
test edx, edx
je 0x140010517
xor edx, edx
lea eax, [rcx - 1]
add eax, r8d
div ecx
mov r8d, eax
imul r8d, ecx
mov dword [rbp - 0x29], r8d
test r13d, r13d
je 0x140010583
dec r13d
mov r15, qword [rbp + 0x67]
mov edi, 1
nop dword [rax + rax]
mov eax, dword [0x14019f120]
test eax, eax
jns 0x140010544
cmp ax, 0x4c7
je 0x140010850
mov rdx, qword [rbp - 0x49]
lea r9, [rbp + 0x6f]
mov rcx, r15
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x14001078f
mov edx, dword [rbp + 0x6f]
mov r8d, dword [rbp - 0x29]
cmp edx, r8d
je 0x14001060e
lea rcx, str._r_nWrite_error:_Wrote__d_bytes__expected__d_bytes
call fcn.14004f2f0
jmp 0x1400107b4
cmp dword [0x14019f598], ebx
je 0x14001051f
mov eax, dword [0x14019f120]
test eax, eax
jns 0x14001059f
cmp ax, 0x4c7
je 0x140010850
mov rdi, qword [rbp - 0x39]
lea r9, [rbp + 0x7f]
mov r15, qword [rbp + 0x67]
mov rdx, rdi
mov rcx, r15
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140010818
mov edx, dword [rbp - 0x29]
cmp dword [rbp + 0x7f], edx
jne 0x140010818
mov r9d, dword [rdi]
lea eax, [r9 + 1]
test eax, 0xfffffffe
jne 0x140010766
mov r8d, edx
mov ecx, 1
shr r8d, 2
cmp ecx, r8d
jae 0x14001060b
mov eax, ecx
cmp dword [rdi + rax*4], r9d
jne 0x140010602
inc ecx
cmp ecx, r8d
jb 0x1400105f3
cmp ecx, r8d
jb 0x140010766
mov dword [rbp + 0x6f], edx
mov eax, edx
add r14, rax
cmp r14, rsi
jb 0x140010390
mov dword [rsp + 0x28], ebx
lea r8, [0x14015911c]
mov r9d, 0xffffffff
mov qword [rsp + 0x20], rbx
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rsi, eax
cmp esi, 1
jle 0x14001068b
mov edx, 2
mov rcx, rsi
call fcn.1400c4f6c
mov rdi, rax
test rax, rax
je 0x14001068b
mov dword [rsp + 0x28], esi
lea r8, [0x14015911c]
mov r9d, 0xffffffff
mov qword [rsp + 0x20], rax
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp eax, esi
je 0x14001068e
mov rcx, rdi
call fcn.1400e8c70
mov rdi, rbx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [0x14019f648]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x140010704
mov r9d, 0x7ffffffe
mov edx, 0xb1
mov r8d, r9d
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x14019f648]
mov r9, rdi
xor r8d, r8d
mov edx, 0xc2
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x14019f648]
xor r9d, r9d
xor r8d, r8d
mov edx, 0xba
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x14019f648]
xor r8d, r8d
movsxd r9, eax
mov edx, 0xb6
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, rdi
call fcn.1400e8c70
mov rcx, qword [rbp + 0x67]
xor r9d, r9d
mov qword [rsp + 0x38], rbx
xor r8d, r8d
mov qword [rsp + 0x30], rbx
mov edx, 0x70140
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x14001074c
call fcn.14004fba0
mov rdx, rax
lea rcx, str.Could_not_refresh_drive_layout:__s
call fcn.14004f2f0
mov r15, qword [rbp - 0x49]
mov ebx, 1
mov r14, qword [rbp - 0x31]
mov rdi, qword [rbp - 0x39]
mov r13, qword [rbp - 0x41]
jmp 0x1400108ec
xor r9d, r9d
xor r8d, r8d
mov rdx, r14
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x14001080a
mov r8d, dword [rbp - 0x29]
mov r13d, 0xf
jmp 0x140010523
call fcn.14004fba0
mov ecx, dword [0x1401e9090]
mov r8, rax
xor edx, edx
mov rax, r14
div rcx
lea rcx, str._r_nWrite_error_at_sector__lld:__s
mov rdx, rax
call fcn.14004f2f0
cmp edi, 4
jae 0x140010864
mov edx, 5
lea rcx, str.Retrying_in__d_seconds...
call fcn.14004f2f0
mov ecx, 0x1388
call qword [sym.imp.KERNEL32.dll_Sleep]
xor r9d, r9d
xor r8d, r8d
mov rdx, r14
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x14001083c
mov ecx, 0xc8
call qword [sym.imp.KERNEL32.dll_Sleep]
inc edi
cmp edi, 4
ja 0x140010850
mov r8d, dword [rbp - 0x29]
jmp 0x140010530
call fcn.14004fba0
lea rcx, str._r_nError:_Could_not_reset_position____s
jmp 0x140010824
call fcn.14004fba0
lea rcx, str._r_nRead_error:_Could_not_read_data_for_fast_zeroing_comparison____s
mov rdx, rax
call fcn.14004f2f0
mov r15, qword [rbp - 0x49]
mov r13, rbx
mov r14, qword [rbp - 0x31]
jmp 0x1400108ec
call fcn.14004fba0
mov rdx, rax
lea rcx, str.Write_error:_Could_not_reset_position____s
call fcn.14004f2f0
mov rdi, qword [rbp - 0x39]
mov r13, rbx
mov r15, qword [rbp - 0x49]
mov r14, qword [rbp - 0x31]
jmp 0x1400108ec
mov rdi, qword [rbp - 0x39]
mov r13, rbx
mov r15, qword [rbp - 0x49]
mov r14, qword [rbp - 0x31]
mov dword [0x14019f120], 0xc003001d
jmp 0x1400108ec
movzx ecx, byte [0x1401e8f6c]
lea eax, [rcx - 1]
cmp al, 7
ja 0x140010b5a
lea rcx, str.Writing_compressed_image:
call fcn.14004f2f0
mov rcx, qword [0x14019f588]
mov dword [rsp + 0x28], 0x8000000
call fcn.14000cb10
mov qword [rbp - 0x31], rax
mov r14, rax
cmp rax, 0xffffffffffffffff
jne 0x140010919
call fcn.14004fba0
mov rdx, qword [0x14019f588]
lea rcx, str.Could_not_open_image__s:__s
mov r8, rax
call fcn.14004f2f0
mov dword [0x14019f120], 0xc003006e
mov r13, rbx
mov r15, rbx
mov rdi, rbx
movzx eax, byte [0x1401e8f6c]
dec al
cmp al, 7
lea rax, [r14 - 1]
ja 0x1400111d5
cmp rax, 0xfffffffffffffffd
ja 0x1400111f6
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1400111f6
mov ecx, dword [0x1401e9090]
mov edx, ecx
call fcn.1400c40ec
mov qword [0x14019f128], rax
test rax, rax
jne 0x14001094a
lea rcx, str.Could_not_allocate_disk_write_buffer
mov dword [0x14019f120], 0xc0030008
call fcn.14004f2f0
jmp 0x1400108e3
mov ecx, dword [0x1401e9090]
xor edx, edx
div rcx
test rdx, rdx
je 0x140010973
mov r8d, 0x50d
lea rdx, str.D:_a_rufus_rufus_src_format.c
lea rcx, str._uintptr_t_sec_buf___SelectedDrive.SectorSize__0
call fcn.1400fbe54
lea rax, [0x14019f120]
mov dword [0x1401d0618], ebx
mov qword [rsp + 0x30], rax
lea r9, [0x140010040]
lea rax, [0x14000fed0]
mov qword [rsp + 0x28], rbx
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, [fcn.14004f2f0]
mov ecx, 0x40000
call fcn.140087d20
movzx r8d, byte [0x1401e8f6c]
mov rdx, r15
mov rcx, r14
call fcn.140088500
mov r14, rax
call fcn.140087cd0
mov r9d, 0xffffffff
mov dword [rsp + 0x28], ebx
lea r8, [0x14015911c]
mov qword [rsp + 0x20], rbx
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rsi, eax
cmp esi, 1
jle 0x140010a3b
mov rcx, rsi
mov edx, 2
call fcn.1400c4f6c
mov rdi, rax
test rax, rax
je 0x140010a3b
mov dword [rsp + 0x28], esi
lea r8, [0x14015911c]
mov r9d, 0xffffffff
mov qword [rsp + 0x20], rax
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp eax, esi
je 0x140010a3e
mov rcx, rdi
call fcn.1400e8c70
mov rdi, rbx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [0x14019f648]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x140010ab4
mov r9d, 0x7ffffffe
mov edx, 0xb1
mov r8d, r9d
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x14019f648]
mov r9, rdi
xor r8d, r8d
mov edx, 0xc2
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x14019f648]
xor r9d, r9d
xor r8d, r8d
mov edx, 0xba
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x14019f648]
xor r8d, r8d
movsxd r9, eax
mov edx, 0xb6
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, rdi
call fcn.1400e8c70
test r14, r14
js 0x140010b0d
cmp dword [0x1401d0618], ebx
je 0x140010b0d
lea rcx, str.Notice:_Compressed_image_data_didnt_end_on_block_boundary.
call fcn.14004f2f0
mov r8d, dword [0x1401e9090]
lea r9, [rbp + 0x6f]
mov rdx, qword [0x14019f128]
mov rcx, r15
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, qword [0x14019f128]
call fcn.1400c40d0
mov qword [0x14019f128], rbx
jmp 0x14001070c
mov rcx, qword [0x14019f128]
call fcn.1400c40d0
mov qword [0x14019f128], rbx
test r14, r14
jns 0x14001070c
cmp word [0x14019f120], 0x4c7
je 0x14001070c
mov rdx, r14
lea rcx, str.Could_not_write_compressed_image:__lld
call fcn.14004f2f0
mov r14, qword [rbp - 0x31]
mov dword [0x14019f120], 0xc003001d
jmp 0x1400108e3
cmp cl, 9
jne 0x140010b7f
mov r8d, 0x523
lea rdx, str.D:_a_rufus_rufus_src_format.c
lea rcx, str.img_report.compression_type___IMG_COMPRESSION_FFU
call fcn.1400fbe54
movzx ecx, byte [0x1401e8f6c]
sub cl, 0xa
cmp cl, 1
ja 0x140010bba
mov rcx, qword [0x14019f588]
lea rdx, [rbp - 0x21]
call fcn.14006ab70
mov qword [rbp - 0x41], rax
mov r13, rax
test rax, rax
je 0x1400108e6
mov rsi, qword [rbp - 0x21]
mov qword [rbp - 0x19], rsi
test rsi, rsi
je 0x1400108e6
jmp 0x140010bbd
mov r13, rbx
mov rdi, qword [0x14019f588]
test r13, r13
mov edx, 1
mov ecx, 0x38
cmovne rdi, r13
call fcn.1400c4f6c
mov r14, rax
test rax, rax
jne 0x140010bef
mov ecx, 8
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x140010c31
xor r9d, r9d
xor r8d, r8d
mov edx, 1
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventA]
mov rcx, rdi
mov dword [rsp + 0x28], 0x48000000
mov qword [r14 + 0x28], rax
call fcn.14000cb10
mov qword [r14], rax
cmp rax, 0xffffffffffffffff
jne 0x140010c5e
mov rcx, qword [r14 + 0x28]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r14
call fcn.1400e8c70
mov r14, rbx
call fcn.14004fba0
mov rdx, qword [0x14019f588]
lea rcx, str.Could_not_open_image__s:__s
mov r8, rax
call fcn.14004f2f0
mov dword [0x14019f120], 0xc003006e
jmp 0x1400108e6
mov ecx, dword [0x1401e9090]
xor edx, edx
mov r8d, ecx
lea rax, [rcx + 0x1ffffff]
div rcx
mov edx, r8d
mov r13, rax
imul r13d, ecx
lea ecx, [r13*2]
call fcn.1400c40ec
mov qword [rbp - 0x49], rax
mov r15, rax
test rax, rax
jne 0x140010cb5
lea rcx, str.Could_not_allocate_disk_write_buffer
mov dword [0x14019f120], 0xc0030008
call fcn.14004f2f0
mov r13, qword [rbp - 0x41]
jmp 0x1400108e9
mov ecx, dword [0x1401e9090]
xor edx, edx
div rcx
test rdx, rdx
je 0x140010cde
mov r8d, 0x53d
lea rdx, str.D:_a_rufus_rufus_src_format.c
lea rcx, str._uintptr_t_buffer___SelectedDrive.SectorSize__0
call fcn.1400fbe54
mov rcx, qword [r14]
mov r8, rsi
mov eax, r13d
mov rdx, r15
cmp rax, rsi
mov qword [rbp + 7], rax
mov dword [r14 + 0x30], ebx
cmovb r8, rax
lea rax, [r14 + 0x30]
mov qword [rbp - 9], rax
xor r9d, r9d
lea rax, [r14 + 0x10]
mov qword [rbp - 1], rax
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x140010d53
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x26
jne 0x140010d3f
mov r8d, 0x6b
lea rdx, str.D:_a_rufus_rufus_srcwinio.h
lea rcx, str.GetLastError_____ERROR_HANDLE_EOF
call fcn.1400fbe54
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
mov ecx, ebx
setne cl
dec ecx
jmp 0x140010d58
mov ecx, 1
lea rdi, [r14 + 8]
mov qword [rbp - 0x11], r14
mov qword [rbp - 0x21], rdi
mov r15, rbx
mov dword [rdi], ecx
mov dword [rbp - 0x25], 1
mov qword [rbp - 0x31], r14
nop dword [rax]
nop dword [rax + rax]
mov r9, rsi
mov dword [rsp + 0x20], ebx
mov r8, r15
mov edx, 0xcbd
mov ecx, 4
call fcn.140066570
xor edx, edx
lea rax, [r15 + r15*4]
shl rax, 4
div rsi
mov r14, rax
cmp rax, r12
jbe 0x140010ec0
cmp r12, 0x50
jae 0x140010eb8
mov dword [rsp + 0x28], ebx
lea r8, [0x140158df0]
mov r9d, 0xffffffff
mov qword [rsp + 0x20], rbx
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rsi, eax
cmp esi, 1
jle 0x140010e2b
mov rcx, rsi
mov edx, 2
call fcn.1400c4f6c
mov rdi, rax
test rax, rax
je 0x140010e2b
mov dword [rsp + 0x28], esi
lea r8, [0x140158df0]
mov r9d, 0xffffffff
mov qword [rsp + 0x20], rax
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp eax, esi
je 0x140010e2e
mov rcx, rdi
call fcn.1400e8c70
mov rdi, rbx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [0x14019f648]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x140010ea4
mov r9d, 0x7ffffffe
mov edx, 0xb1
mov r8d, r9d
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x14019f648]
mov r9, rdi
xor r8d, r8d
mov edx, 0xc2
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x14019f648]
xor r9d, r9d
xor r8d, r8d
mov edx, 0xba
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x14019f648]
xor r8d, r8d
movsxd r9, eax
mov edx, 0xb6
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, rdi
call fcn.1400e8c70
inc r12
cmp r14, r12
ja 0x140010db2
mov rdi, qword [rbp - 0x21]
mov rsi, qword [rbp - 0x19]
cmp r15, rsi
jae 0x14001061c
mov r14, qword [rbp - 0x11]
cmp dword [rdi], ebx
jg 0x140010ee8
mov rcx, qword [r14 + 0x28]
mov edx, 0x3a98
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x1400111a6
mov rax, qword [rbp - 0x21]
lea rsi, [rbp - 0x29]
movsxd rdi, dword [rbp + 0x77]
mov eax, dword [rax]
lea rsi, [rsi + rdi*4]
test eax, eax
je 0x1400111a4
mov rcx, qword [rbp - 9]
cmp dword [rcx], ebx
jne 0x140011197
mov rdx, qword [rbp - 1]
mov r9d, 0x1388
mov dword [rcx], 1
mov r8, rsi
mov rcx, qword [r14]
shr eax, 0x1f
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_GetOverlappedResultEx]
test eax, eax
jne 0x140010f5c
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x26
je 0x140010f4d
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x1b
mov eax, ebx
jne 0x140010f52
mov eax, 1
test eax, eax
je 0x1400111a6
jmp 0x140010f62
mov eax, dword [rsi]
add qword [r14 + 0x20], rax
mov r8d, dword [rsi]
xor edx, edx
mov ecx, dword [0x1401e9090]
mov eax, r8d
div ecx
test edx, edx
je 0x140010fbb
xor edx, edx
lea eax, [rcx - 1]
add eax, r8d
div ecx
imul eax, ecx
cmp eax, r13d
jbe 0x140010fa7
mov r8d, 0x558
lea rdx, str.D:_a_rufus_rufus_src_format.c
lea rcx, str.HI_ALIGN_X_TO_Y_read_size_read_bufnum___SelectedDrive.SectorSize____buf_size
call fcn.1400fbe54
mov ecx, dword [0x1401e9090]
mov eax, dword [rsi]
xor edx, edx
dec eax
add eax, ecx
div ecx
mov r8d, eax
imul r8d, ecx
mov dword [rsi], r8d
mov r14d, edi
inc edi
and edi, 0x80000001
mov dword [rbp + 0x77], edi
jge 0x140010fd5
dec edi
or edi, 0xfffffffe
inc edi
mov dword [rbp + 0x77], edi
mov rcx, qword [rbp - 0x11]
mov edx, r13d
mov eax, r8d
mov r8, qword [rbp - 0x19]
sub r8, rax
mov rax, qword [rbp - 9]
mov rcx, qword [rcx]
sub r8, r15
cmp qword [rbp + 7], r8
cmovb r8, qword [rbp + 7]
xor r9d, r9d
imul edx, edi
mov dword [rax], ebx
mov rax, qword [rbp - 1]
mov qword [rsp + 0x20], rax
add rdx, qword [rbp - 0x49]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x140011050
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x26
jne 0x14001103c
mov r8d, 0x6b
lea rdx, str.D:_a_rufus_rufus_srcwinio.h
lea rcx, str.GetLastError_____ERROR_HANDLE_EOF
call fcn.1400fbe54
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
mov ecx, ebx
setne cl
dec ecx
jmp 0x140011055
mov ecx, 1
mov rax, qword [rbp - 0x21]
mov edi, 1
mov dword [rax], ecx
mov eax, dword [0x14019f120]
test eax, eax
jns 0x140011074
cmp ax, 0x4c7
je 0x14001116b
mov r8d, dword [rsi]
lea r9, [rbp + 0x6f]
mov rcx, qword [rbp + 0x67]
mov edx, r13d
imul edx, r14d
mov qword [rsp + 0x20], rbx
add rdx, qword [rbp - 0x49]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x1400110b7
mov ecx, dword [rsi]
mov edx, dword [rbp + 0x6f]
cmp edx, ecx
je 0x14001113f
mov r8d, ecx
lea rcx, str._r_nWrite_error:_Wrote__d_bytes__expected__d_bytes
call fcn.14004f2f0
jmp 0x1400110dc
call fcn.14004fba0
mov ecx, dword [0x1401e9090]
mov r8, rax
xor edx, edx
mov rax, r15
div rcx
lea rcx, str._r_nWrite_error_at_sector__lld:__s
mov rdx, rax
call fcn.14004f2f0
cmp edi, 4
jae 0x14001117c
mov edx, 5
lea rcx, str.Retrying_in__d_seconds...
call fcn.14004f2f0
mov ecx, 0x1388
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rcx, qword [rbp + 0x67]
xor r9d, r9d
xor r8d, r8d
mov rdx, r15
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x140011157
mov ecx, 0xc8
call qword [sym.imp.KERNEL32.dll_Sleep]
inc edi
cmp edi, 4
jbe 0x140011060
mov r15, qword [rbp - 0x49]
mov r14, qword [rbp - 0x31]
mov r13, qword [rbp - 0x41]
jmp 0x1400108e9
add r15, rcx
test ecx, ecx
je 0x14001061c
mov rdi, qword [rbp - 0x21]
mov rsi, qword [rbp - 0x19]
jmp 0x140010d80
call fcn.14004fba0
mov rdx, rax
lea rcx, str.Write_error:_Could_not_reset_position____s
call fcn.14004f2f0
mov r15, qword [rbp - 0x49]
mov r14, qword [rbp - 0x31]
mov r13, qword [rbp - 0x41]
jmp 0x1400108e9
mov r15, qword [rbp - 0x49]
mov r14, qword [rbp - 0x31]
mov r13, qword [rbp - 0x41]
mov dword [0x14019f120], 0xc003001d
jmp 0x1400108e9
mov ecx, 0x103
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x1400111a6
mov dword [rsi], ebx
call fcn.14004fba0
mov rdx, rax
lea rcx, str._r_nRead_error:__s
call fcn.14004f2f0
mov r15, qword [rbp - 0x49]
mov r14, qword [rbp - 0x31]
mov r13, qword [rbp - 0x41]
mov dword [0x14019f120], 0xc003001e
jmp 0x1400108e9
cmp rax, 0xfffffffffffffffd
ja 0x1400111f6
mov rcx, qword [r14]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [r14 + 0x28]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r14
call fcn.1400e8c70
test r13, r13
je 0x140011240
mov rcx, qword [0x14019cca0]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x140011239
xor r8d, r8d
xor edx, edx
call qword [sym.imp.VirtDisk.dll_DetachVirtualDisk]
mov rcx, qword [0x14019cca0]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x140011239
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [0x14019cca0], 0xffffffffffffffff
mov byte [0x1401e5bd0], 0
mov rcx, r15
call fcn.1400c40d0
mov rcx, rdi
call fcn.1400c40d0
mov eax, ebx
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret