Function at 0x14000c180
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, 0x88
xor ebx, ebx
mov rsi, 0xffffffffffffffff
mov qword [rbp - 0x19], rsi
mov edi, edx
mov qword [rbp - 0x11], rbx
mov r14, rcx
test edx, edx
je 0x14000c1c0
mov rcx, qword [0x14015b540]
jmp 0x14000c1d6
mov rcx, qword [0x14015b3f0]
cmp qword [0x14015b540], rcx
cmovb rcx, qword [0x14015b540]
mov edx, dword [0x14015b550]
mov r15, rbx
mov qword [rbp - 9], rcx
mov r12d, ebx
mov qword [rbp + 0x7f], rcx
mov r13d, ebx
mov qword [rbp - 0x29], rbx
mov qword [rbp - 1], rbx
mov qword [rbp - 0x21], rbx
cmp edx, 0x200
jae 0x14000c214
lea rcx, str.Unexpected_sector_size___d____Aborting
call fcn.140041aa0
xor eax, eax
jmp 0x14000d0dd
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x14000c236
lea rcx, str.Warning:_Unable_to_rewind_image_position___wrong_data_might_be_copied_
call fcn.140041aa0
xor r9d, r9d
mov dword [rsp + 0x20], ebx
xor r8d, r8d
xor edx, edx
mov ecx, esi
call fcn.1400527d0
test edi, edi
je 0x14000c748
cmp dword [0x1401128e8], ebx
lea rax, str.Fast_zeroing_drive:
lea rcx, str.Zeroing_drive:
cmovne rcx, rax
call fcn.140041aa0
mov ecx, dword [0x14015b550]
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.14009653c
mov qword [rbp - 0x29], rax
mov rdi, rax
test rax, rax
jne 0x14000c2c0
lea rcx, str.Could_not_allocate_disk_zeroing_buffer
mov dword [0x140111620], 0xc0030008
call fcn.140041aa0
lea rsi, [rdi - 1]
mov r14, rbx
jmp 0x14000c7b2
mov ecx, dword [0x14015b550]
xor edx, edx
div rcx
test rdx, rdx
je 0x14000c2e9
mov r8d, 0x4a0
lea rdx, str.C:_src_r3dusb_src_format.c
lea rcx, str._uintptr_t_buffer___SelectedDrive.SectorSize__0
call fcn.1400a15c4
mov edi, dword [0x1401128e8]
mov r8, r14
mov rcx, qword [rbp - 0x29]
mov eax, edi
neg eax
sbb edx, edx
movzx edx, dl
call fcn.140093c00
test edi, edi
je 0x14000c371
mov edx, dword [0x14015b550]
mov rcx, r14
call fcn.14009653c
mov qword [rbp - 1], rax
test rax, rax
jne 0x14000c348
lea rcx, str.Could_not_allocate_disk_comparison_buffer
mov dword [0x140111620], 0xc0030008
call fcn.140041aa0
mov rdi, qword [rbp - 0x29]
mov rsi, 0xffffffffffffffff
mov r14, rbx
jmp 0x14000c7b2
mov ecx, dword [0x14015b550]
xor edx, edx
div rcx
test rdx, rdx
je 0x14000c371
mov r8d, 0x4ac
lea rdx, str.C:_src_r3dusb_src_format.c
lea rcx, str._uintptr_t_cmp_buffer___SelectedDrive.SectorSize__0
call fcn.1400a15c4
mov r13, qword [rbp + 0x7f]
mov dword [rbp - 0x11], esi
mov rsi, rbx
mov dword [rbp + 0x6f], ebx
test r13, r13
je 0x14000c6b2
cmp dword [0x1401128e8], ebx
mov eax, 0xcea
mov edx, 0xcd6
mov dword [rsp + 0x20], ebx
cmovne edx, eax
mov r9, r13
mov r8, rsi
mov ecx, 4
call fcn.1400527d0
xor edx, edx
lea rax, [rsi + rsi*4]
shl rax, 4
div r13
mov r14, rax
cmp rax, r15
jbe 0x14000c473
nop word [rax + rax]
cmp r15, 0x50
jae 0x14000c473
lea rcx, [0x1400d9b90]
call fcn.140003550
mov rcx, rax
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [0x140111ab0]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x14000c45f
mov r9d, 0x7ffffffe
mov edx, 0xb1
mov r8d, r9d
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x140111ab0]
mov r9, rdi
xor r8d, r8d
mov edx, 0xc2
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x140111ab0]
xor r9d, r9d
xor r8d, r8d
mov edx, 0xba
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x140111ab0]
xor r8d, r8d
movsxd r9, eax
mov edx, 0xb6
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, rdi
call fcn.14009b5a0
inc r15
cmp r14, r15
ja 0x14000c3d0
mov r8d, dword [rbp - 0x11]
lea rax, [rsi + r8]
cmp rax, r13
jbe 0x14000c48a
mov r8d, r13d
sub r8d, esi
mov dword [rbp - 0x11], r8d
mov ecx, dword [0x14015b550]
xor edx, edx
mov eax, r8d
div ecx
test edx, edx
je 0x14000c4b0
xor edx, edx
lea eax, [rcx - 1]
add eax, r8d
div ecx
mov r8d, eax
imul r8d, ecx
mov dword [rbp - 0x11], r8d
test r12d, r12d
je 0x14000c514
dec r12d
mov r14, qword [rbp + 0x67]
mov edi, 1
mov eax, dword [0x140111620]
test eax, eax
jns 0x14000c4d5
cmp ax, 0x4c7
je 0x14000c335
mov rdx, qword [rbp - 0x29]
lea r9, [rbp + 0x6f]
mov rcx, r14
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x14000c5d3
mov edx, dword [rbp + 0x6f]
mov r8d, dword [rbp - 0x11]
cmp edx, r8d
je 0x14000c597
lea rcx, str._r_nWrite_error:_Wrote__d_bytes__expected__d_bytes
call fcn.140041aa0
jmp 0x14000c5f8
cmp dword [0x1401128e8], ebx
je 0x14000c4b8
mov eax, dword [0x140111620]
test eax, eax
jns 0x14000c530
cmp ax, 0x4c7
je 0x14000c335
mov rdi, qword [rbp - 1]
lea r9, [rbp + 0x77]
mov r14, qword [rbp + 0x67]
mov rdx, rdi
mov rcx, r14
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x14000c660
mov edx, dword [rbp - 0x11]
cmp dword [rbp + 0x77], edx
jne 0x14000c660
mov r9d, dword [rdi]
lea eax, [r9 + 1]
test eax, 0xfffffffe
jne 0x14000c5aa
mov r8d, edx
mov ecx, 1
shr r8d, 2
cmp ecx, r8d
jae 0x14000c594
mov eax, ecx
cmp dword [rdi + rax*4], r9d
jne 0x14000c58f
inc ecx
cmp ecx, r8d
jb 0x14000c580
cmp ecx, r8d
jb 0x14000c5aa
mov dword [rbp + 0x6f], edx
mov eax, edx
add rsi, rax
cmp rsi, r13
jae 0x14000c6b6
jmp 0x14000c387
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x14000c652
mov r8d, dword [rbp - 0x11]
mov r12d, 0xf
jmp 0x14000c4bc
call fcn.140041e50
mov ecx, dword [0x14015b550]
mov r8, rax
xor edx, edx
mov rax, rsi
div rcx
lea rcx, str._r_nWrite_error_at_sector__lld:__s
mov rdx, rax
call fcn.140041aa0
cmp edi, 4
jae 0x14000c695
mov edx, 5
lea rcx, str.Retrying_in__d_seconds...
call fcn.140041aa0
mov ecx, 0x1388
call qword [sym.imp.KERNEL32.dll_Sleep]
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x14000c687
mov ecx, 0xc8
call qword [sym.imp.KERNEL32.dll_Sleep]
inc edi
cmp edi, 4
ja 0x14000c335
mov r8d, dword [rbp - 0x11]
jmp 0x14000c4c1
call fcn.140041e50
lea rcx, str._r_nError:_Could_not_reset_position____s
jmp 0x14000c66c
call fcn.140041e50
lea rcx, str._r_nRead_error:_Could_not_read_data_for_fast_zeroing_comparison____s
mov rdx, rax
call fcn.140041aa0
mov rdi, qword [rbp - 0x29]
mov rsi, 0xffffffffffffffff
mov r14, rbx
jmp 0x14000c7b2
call fcn.140041e50
lea rcx, str.Write_error:_Could_not_reset_position____s
jmp 0x14000c66c
mov rdi, qword [rbp - 0x29]
mov rsi, 0xffffffffffffffff
mov dword [0x140111620], 0xc003001d
mov r14, rbx
jmp 0x14000c7b2
mov r14, qword [rbp + 0x67]
lea rcx, [0x1400d9ebc]
call fcn.140003550
mov rcx, rax
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [0x140111ab0]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x14000c73b
mov r9d, 0x7ffffffe
mov edx, 0xb1
mov r8d, r9d
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x140111ab0]
mov r9, rdi
xor r8d, r8d
mov edx, 0xc2
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x140111ab0]
xor r9d, r9d
xor r8d, r8d
mov edx, 0xba
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x140111ab0]
xor r8d, r8d
movsxd r9, eax
mov edx, 0xb6
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, rdi
call fcn.14009b5a0
jmp 0x14000d046
movzx ecx, byte [0x14015b42c]
lea eax, [rcx - 1]
cmp al, 7
ja 0x14000c9bd
lea rcx, str.Writing_compressed_image:
call fcn.140041aa0
mov rcx, qword [0x1401128d8]
mov dword [rsp + 0x28], 0x8000000
call fcn.140009490
mov qword [rbp - 0x19], rax
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x14000c7df
call fcn.140041e50
mov rdx, qword [0x1401128d8]
lea rcx, str.Could_not_open_image__s:__s
mov r8, rax
call fcn.140041aa0
mov dword [0x140111620], 0xc003006e
mov r14, rbx
mov rdi, rbx
movzx eax, byte [0x14015b42c]
dec al
cmp al, 7
lea rax, [rsi - 1]
ja 0x14000d09f
cmp rax, 0xfffffffffffffffd
ja 0x14000d0c0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14000d0c0
mov ecx, dword [0x14015b550]
mov edx, ecx
call fcn.14009653c
mov qword [0x140111628], rax
test rax, rax
jne 0x14000c810
lea rcx, str.Could_not_allocate_disk_write_buffer
mov dword [0x140111620], 0xc0030008
call fcn.140041aa0
jmp 0x14000c7ac
mov ecx, dword [0x14015b550]
xor edx, edx
div rcx
test rdx, rdx
je 0x14000c839
mov r8d, 0x50e
lea rdx, str.C:_src_r3dusb_src_format.c
lea rcx, str._uintptr_t_sec_buf___SelectedDrive.SectorSize__0
call fcn.1400a15c4
lea rax, [0x140111620]
mov dword [0x140143028], ebx
mov qword [rsp + 0x30], rax
lea r9, [0x14000c030]
lea rax, [0x14000bf30]
mov qword [rsp + 0x28], rbx
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, [fcn.140041aa0]
mov ecx, 0x40000
call fcn.14006db00
movzx r8d, byte [0x14015b42c]
mov rdx, r14
mov rcx, rsi
call fcn.14006e090
mov rdi, rax
call fcn.14006dab0
lea rcx, [0x1400d9ebc]
call fcn.140003550
mov rcx, rax
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [0x140111ab0]
lea rdx, [rcx - 1]
cmp rdx, 0xfffffffffffffffd
ja 0x14000c917
mov r9d, 0x7ffffffe
mov edx, 0xb1
mov r8d, r9d
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x140111ab0]
mov r9, rsi
xor r8d, r8d
mov edx, 0xc2
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x140111ab0]
xor r9d, r9d
xor r8d, r8d
mov edx, 0xba
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x140111ab0]
xor r8d, r8d
movsxd r9, eax
mov edx, 0xb6
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, rsi
call fcn.14009b5a0
test rdi, rdi
js 0x14000c970
cmp dword [0x140143028], ebx
je 0x14000c970
lea rcx, str.Notice:_Compressed_image_data_didnt_end_on_block_boundary.
call fcn.140041aa0
mov r8d, dword [0x14015b550]
lea r9, [rbp + 0x6f]
mov rdx, qword [0x140111628]
mov rcx, r14
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, qword [0x140111628]
call fcn.140096520
mov qword [0x140111628], rbx
jmp 0x14000d046
mov rcx, qword [0x140111628]
call fcn.140096520
mov qword [0x140111628], rbx
test rdi, rdi
jns 0x14000d046
cmp word [0x140111620], 0x4c7
je 0x14000d046
mov rdx, rdi
lea rcx, str.Could_not_write_compressed_image:__lld
call fcn.140041aa0
mov rsi, qword [rbp - 0x19]
mov dword [0x140111620], 0xc003001d
jmp 0x14000c7ac
cmp cl, 9
jne 0x14000c9e2
mov r8d, 0x524
lea rdx, str.C:_src_r3dusb_src_format.c
lea rcx, str.img_report.compression_type___IMG_COMPRESSION_FFU
call fcn.1400a15c4
movzx ecx, byte [0x14015b42c]
sub cl, 0xa
cmp cl, 1
ja 0x14000ca1d
mov rcx, qword [0x1401128d8]
lea rdx, [rbp - 9]
call fcn.140055fb0
mov qword [rbp - 0x21], rax
mov r14, rax
test rax, rax
je 0x14000c7af
mov rcx, qword [rbp - 9]
mov qword [rbp + 0x7f], rcx
test rcx, rcx
je 0x14000c7af
jmp 0x14000ca20
mov r14, rbx
mov rdi, qword [0x1401128d8]
mov edx, 1
test r14, r14
cmovne rdi, r14
lea ecx, [rdx + 0x37]
call fcn.1400966e0
mov qword [rbp - 0x19], rax
mov rsi, rax
test rax, rax
jne 0x14000ca52
lea ecx, [rax + 8]
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x14000ca93
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
lea edx, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateEventA]
mov rcx, rdi
mov dword [rsp + 0x28], 0x48000000
mov qword [rsi + 0x28], rax
call fcn.140009490
mov qword [rsi], rax
cmp rax, 0xffffffffffffffff
jne 0x14000cac0
mov rcx, qword [rsi + 0x28]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rsi
call fcn.14009b5a0
call fcn.140041e50
mov rdx, qword [0x1401128d8]
lea rcx, str.Could_not_open_image__s:__s
mov r8, rax
call fcn.140041aa0
mov dword [0x140111620], 0xc003006e
mov rsi, rbx
jmp 0x14000c7af
mov ecx, dword [0x14015b550]
xor edx, edx
mov r8d, ecx
lea rax, [rcx + 0x1ffffff]
div rcx
mov edx, r8d
mov r14, rax
imul r14d, ecx
mov qword [rbp - 9], r14
lea ecx, [r14 + r14]
call fcn.14009653c
mov qword [rbp - 0x29], rax
mov rdi, rax
test rax, rax
jne 0x14000cb17
lea rcx, str.Could_not_allocate_disk_write_buffer
mov dword [0x140111620], 0xc0030008
call fcn.140041aa0
mov r14, qword [rbp - 0x21]
jmp 0x14000c7b2
mov ecx, dword [0x14015b550]
xor edx, edx
div rcx
test rdx, rdx
je 0x14000cb40
mov r8d, 0x53e
lea rdx, str.C:_src_r3dusb_src_format.c
lea rcx, str._uintptr_t_buffer___SelectedDrive.SectorSize__0
call fcn.1400a15c4
mov rdi, qword [rbp + 0x7f]
mov rdx, qword [rbp - 0x29]
mov r8, rdi
mov ecx, r14d
cmp rcx, rdi
mov qword [rbp + 7], rcx
mov dword [rsi + 0x30], ebx
cmovb r8, rcx
lea rcx, [rsi + 0x10]
mov qword [rsp + 0x20], rcx
xor r9d, r9d
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x14000cbab
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x26
jne 0x14000cb97
lea r8d, [rax + 0x46]
lea rdx, str.C:_src_r3dusb_srcwinio.h
lea rcx, str.GetLastError_____ERROR_HANDLE_EOF
call fcn.1400a15c4
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
mov ecx, ebx
setne cl
dec ecx
jmp 0x14000cbb0
mov ecx, 1
mov dword [rsi + 8], ecx
mov dword [rbp - 0xd], 1
nop word [rax + rax]
mov r9, rdi
mov dword [rsp + 0x20], ebx
mov r8, r12
mov edx, 0xcbd
mov ecx, 4
call fcn.1400527d0
xor edx, edx
lea rax, [r12 + r12*4]
shl rax, 4
div rdi
mov rsi, rax
cmp rax, r15
jbe 0x14000cc99
cmp r15, 0x50
jae 0x14000cc95
lea rcx, [0x1400d9b90]
call fcn.140003550
mov rcx, rax
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [0x140111ab0]
lea rdx, [rcx - 1]
cmp rdx, 0xfffffffffffffffd
ja 0x14000cc81
mov r9d, 0x7ffffffe
mov edx, 0xb1
mov r8d, r9d
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x140111ab0]
mov r9, rdi
xor r8d, r8d
mov edx, 0xc2
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x140111ab0]
xor r9d, r9d
xor r8d, r8d
mov edx, 0xba
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x140111ab0]
xor r8d, r8d
movsxd r9, eax
mov edx, 0xb6
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, rdi
call fcn.14009b5a0
inc r15
cmp rsi, r15
ja 0x14000cbf2
mov rdi, qword [rbp + 0x7f]
cmp r12, rdi
jae 0x14000cfb5
cmp dword [0x1401429e0], 0x62
jb 0x14000cd37
mov rsi, qword [rbp - 0x19]
cmp dword [rsi + 8], ebx
jg 0x14000cccf
mov rcx, qword [rsi + 0x28]
mov edx, 0x3a98
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x14000cf4a
mov rcx, qword [rbp - 0x19]
lea rdi, [rbp - 0x11]
movsxd rsi, r13d
mov r9d, dword [rcx + 8]
lea rdi, [rdi + rsi*4]
test r9d, r9d
je 0x14000cf44
cmp dword [rcx + 0x30], ebx
jne 0x14000cf37
mov dword [rcx + 0x30], 1
lea rdx, [rcx + 0x10]
mov rcx, qword [rcx]
mov r8, rdi
shr r9d, 0x1f
call qword [sym.imp.KERNEL32.dll_GetOverlappedResult]
test eax, eax
jne 0x14000cd2b
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x26
mov ecx, ebx
sete cl
test ecx, ecx
je 0x14000cf46
jmp 0x14000cd3a
mov eax, dword [rdi]
mov rdi, qword [rbp - 0x19]
add qword [rdi + 0x20], rax
jmp 0x14000cd3e
movsxd rsi, r13d
mov rdi, qword [rbp - 0x19]
mov ecx, dword [0x14015b550]
lea rdx, [rbp - 0x11]
mov r8d, dword [rdx + rsi*4]
lea rsi, [rdx + rsi*4]
xor edx, edx
mov eax, r8d
div ecx
test edx, edx
je 0x14000cda3
xor edx, edx
lea eax, [rcx - 1]
add eax, r8d
div ecx
imul eax, ecx
cmp eax, r14d
jbe 0x14000cd8f
mov r8d, 0x55a
lea rdx, str.C:_src_r3dusb_src_format.c
lea rcx, str.HI_ALIGN_X_TO_Y_read_size_read_bufnum___SelectedDrive.SectorSize____buf_size
call fcn.1400a15c4
mov r8d, dword [rsi]
mov ecx, dword [0x14015b550]
lea eax, [r8 - 1]
xor edx, edx
add eax, ecx
div ecx
mov r8d, eax
imul r8d, ecx
mov dword [rsi], r8d
mov r14d, r13d
inc r13d
and r13d, 0x80000001
jge 0x14000cdbc
dec r13d
or r13d, 0xfffffffe
inc r13d
mov edx, dword [rbp - 9]
mov rcx, qword [rbp + 0x7f]
mov eax, r8d
sub rcx, rax
mov dword [rdi + 0x30], ebx
sub rcx, r12
lea rax, [rdi + 0x10]
cmp qword [rbp + 7], rcx
mov qword [rsp + 0x20], rax
cmovb rcx, qword [rbp + 7]
xor r9d, r9d
imul edx, r13d
mov r8d, ecx
mov rcx, qword [rdi]
add rdx, qword [rbp - 0x29]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x14000ce32
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x26
jne 0x14000ce1e
lea r8d, [rax + 0x46]
lea rdx, str.C:_src_r3dusb_srcwinio.h
lea rcx, str.GetLastError_____ERROR_HANDLE_EOF
call fcn.1400a15c4
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
mov ecx, ebx
setne cl
dec ecx
jmp 0x14000ce37
mov ecx, 1
mov dword [rdi + 8], ecx
mov edi, 1
nop
mov eax, dword [0x140111620]
test eax, eax
jns 0x14000ce54
cmp ax, 0x4c7
je 0x14000cf89
mov edx, dword [rbp - 9]
lea r9, [rbp + 0x6f]
mov r8d, dword [rsi]
mov rcx, qword [rbp + 0x67]
imul edx, r14d
mov qword [rsp + 0x20], rbx
add rdx, qword [rbp - 0x29]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x14000ce97
mov ecx, dword [rsi]
mov edx, dword [rbp + 0x6f]
cmp edx, ecx
je 0x14000cf1f
mov r8d, ecx
lea rcx, str._r_nWrite_error:_Wrote__d_bytes__expected__d_bytes
call fcn.140041aa0
jmp 0x14000cebc
call fcn.140041e50
mov ecx, dword [0x14015b550]
mov r8, rax
xor edx, edx
mov rax, r12
div rcx
lea rcx, str._r_nWrite_error_at_sector__lld:__s
mov rdx, rax
call fcn.140041aa0
cmp edi, 4
jae 0x14000cf9a
mov edx, 5
lea rcx, str.Retrying_in__d_seconds...
call fcn.140041aa0
mov ecx, 0x1388
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rcx, qword [rbp + 0x67]
xor r9d, r9d
xor r8d, r8d
mov rdx, r12
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x14000cf75
mov ecx, 0xc8
call qword [sym.imp.KERNEL32.dll_Sleep]
inc edi
cmp edi, 4
jbe 0x14000ce40
mov rsi, qword [rbp - 0x19]
mov rdi, qword [rbp - 0x29]
mov r14, qword [rbp - 0x21]
jmp 0x14000c7b2
add r12, rcx
test ecx, ecx
je 0x14000cfb5
mov r14, qword [rbp - 9]
mov rdi, qword [rbp + 0x7f]
jmp 0x14000cbc0
mov ecx, 0x103
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x14000cf46
mov dword [rdi], ebx
mov rsi, qword [rbp - 0x19]
call fcn.140041e50
mov rdx, rax
lea rcx, str._r_nRead_error:__s
call fcn.140041aa0
mov rdi, qword [rbp - 0x29]
mov r14, qword [rbp - 0x21]
mov dword [0x140111620], 0xc003001e
jmp 0x14000c7b2
call fcn.140041e50
mov rdx, rax
lea rcx, str.Write_error:_Could_not_reset_position____s
call fcn.140041aa0
mov rsi, qword [rbp - 0x19]
mov rdi, qword [rbp - 0x29]
mov r14, qword [rbp - 0x21]
jmp 0x14000c7b2
mov rsi, qword [rbp - 0x19]
mov rdi, qword [rbp - 0x29]
mov r14, qword [rbp - 0x21]
mov dword [0x140111620], 0xc003001d
jmp 0x14000c7b2
lea rcx, [0x1400d9ebc]
call fcn.140003550
mov rcx, rax
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [0x140111ab0]
lea rdx, [rcx - 1]
cmp rdx, 0xfffffffffffffffd
ja 0x14000d03a
mov r9d, 0x7ffffffe
mov edx, 0xb1
mov r8d, r9d
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x140111ab0]
mov r9, rdi
xor r8d, r8d
mov edx, 0xc2
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x140111ab0]
xor r9d, r9d
xor r8d, r8d
mov edx, 0xba
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x140111ab0]
xor r8d, r8d
movsxd r9, eax
mov edx, 0xb6
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, rdi
call fcn.14009b5a0
mov r14, qword [rbp + 0x67]
mov qword [rsp + 0x38], rbx
lea rax, [rbp + 0x7f]
mov qword [rsp + 0x30], rax
xor r9d, r9d
mov dword [rsp + 0x28], ebx
xor r8d, r8d
mov edx, 0x70140
mov qword [rsp + 0x20], rbx
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x14000d089
call fcn.140041e50
mov rdx, rax
lea rcx, str.Could_not_refresh_drive_layout:__s
call fcn.140041aa0
mov rsi, qword [rbp - 0x19]
mov ebx, 1
mov rdi, qword [rbp - 0x29]
mov r14, qword [rbp - 0x21]
jmp 0x14000c7b2
cmp rax, 0xfffffffffffffffd
ja 0x14000d0c0
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsi + 0x28]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rsi
call fcn.14009b5a0
test r14, r14
je 0x14000d0ca
call fcn.140056400
mov rcx, rdi
call fcn.140096520
mov rcx, qword [rbp - 1]
call fcn.140096520
mov eax, ebx
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret