Function at 0x140050db8
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x68
mov r15, rdx
mov rdi, rcx
or qword [rbp - 0x28], 0xffffffffffffffff
xor ebx, ebx
mov qword [rbp - 0x20], rbx
xor esi, esi
and dword [rbp + 0x58], esi
mov r13d, 0x100000
and dword [rbp + 0x60], esi
lea r8, str.CVdsRawDiskLun::CleanDiskThread__
lea edx, [rbx + 0x5e]
lea rcx, [rbp - 0x18]
call qword [sym.imp.vdsutil.dll_public:_void___cdecl_CVdsCallTracer::constructor_unsigned_long_int__char_const____ptr64____ptr64]
nop dword [rax + rax]
nop
lea r8, [rbp - 0x28]
mov edx, 0xc0000000
mov rcx, qword [rdi + 0xd8]
call qword [sym.imp.vdsutil.dll_OpenDevice]
nop dword [rax + rax]
mov edi, eax
test eax, eax
je 0x140050e65
mov r9d, eax
lea r8, str.CRawDiskLun::Clean__1__error_ld
xor edx, edx
lea ecx, [rbx + 0x5e]
call qword [sym.imp.vdsutil.dll_VdsTraceEx]
nop dword [rax + rax]
test edi, edi
jg 0x140050e57
mov esi, edi
jmp 0x1400510d0
movzx esi, di
or esi, 0x80070000
jmp 0x1400510d0
test rbx, rbx
jne 0x140050eba
cmp r13d, 0x200
jb 0x140050eba
call qword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
nop dword [rax + rax]
mov rcx, rax
mov r8d, r13d
lea edx, [rbx + 8]
call qword [sym.imp.vdsutil.dll_VdsHeapAlloc]
nop dword [rax + rax]
mov rdx, rax
lea rcx, [rbp - 0x20]
call sym.vds.exe_public:_unsigned_short_int____ptr64___cdecl_CVdsHeapPtr_unsigned_short_int_::operator_unsigned_short_int____ptr64____ptr64
mov rbx, qword [rbp - 0x20]
test rbx, rbx
sete al
mov ecx, r13d
shr ecx, 1
test al, al
cmove ecx, r13d
mov r13d, ecx
jmp 0x140050e65
mov r14d, 0x80070000
xor edx, edx
test rbx, rbx
jne 0x140050ee9
lea esi, [r14 + 0xe]
mov r9d, esi
lea r8, str.CRawDiskLun::Clean__2__hr_lX
lea ecx, [rdx + 0x5e]
call qword [sym.imp.vdsutil.dll_VdsTraceEx]
nop dword [rax + rax]
jmp 0x14005105c
mov eax, 0x100000
div r13d
mov r15d, eax
mov r12d, eax
mov eax, 1
xor edi, edi
test r12d, r12d
je 0x140050fa8
test eax, eax
je 0x140050f58
and qword [rsp + 0x20], 0
lea r9, [rbp + 0x58]
mov r8d, r13d
mov rdx, rbx
mov rcx, qword [rbp - 0x28]
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_WriteFile]
nop dword [rax + rax]
test eax, eax
je 0x140050f4e
mov eax, dword [rbp + 0x58]
add rdi, rax
xor r9d, r9d
xor r8d, r8d
mov rdx, rdi
mov rcx, qword [rbp - 0x28]
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_SetFilePointerEx]
nop dword [rax + rax]
add r12d, 0xffffffff
jne 0x140050f07
test eax, eax
jne 0x140050fa8
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
nop dword [rax + rax]
mov esi, eax
lea eax, [r15 - 1]
mov r9d, esi
xor edx, edx
lea ecx, [rdx + 0x5e]
cmp r12d, eax
lea r8, str.CRawDiskLun::Clean__3__error_ld
je 0x140050f85
lea r8, str.CRawDiskLun::Clean__4__error_ld
call qword [sym.imp.vdsutil.dll_VdsTraceEx]
nop dword [rax + rax]
mov r15, qword [rbp + 0x50]
test esi, esi
jle 0x14005105c
movzx esi, si
or esi, r14d
jmp 0x14005105c
mov rcx, qword [rbp + 0x48]
mov rax, qword [rcx + 0x100]
sub rax, qword [0x14008eea0]
jne 0x140050fca
mov rax, qword [rcx + 0x108]
sub rax, qword [0x14008eea8]
test rax, rax
je 0x140051058
mov rdx, qword [rcx + 0xa0]
sub rdx, 0x100000
xor r9d, r9d
xor r8d, r8d
mov rcx, qword [rbp - 0x28]
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_SetFilePointerEx]
nop dword [rax + rax]
test eax, eax
je 0x14005102f
mov eax, 1
test r15d, r15d
je 0x140051056
test eax, eax
je 0x14005102f
and qword [rsp + 0x20], 0
lea r9, [rbp + 0x58]
mov r8d, r13d
mov rdx, rbx
mov rcx, qword [rbp - 0x28]
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_WriteFile]
nop dword [rax + rax]
add r15d, 0xffffffff
jne 0x140051005
cmp eax, 1
je 0x140051056
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
nop dword [rax + rax]
mov esi, eax
mov r9d, eax
lea r8, str.CRawDiskLun::CleanDiskThread__5__error_ld
xor edx, edx
lea ecx, [rdx + 0x5e]
jmp 0x140050f85
xor esi, esi
mov r15, qword [rbp + 0x50]
and qword [rsp + 0x38], 0
lea rax, [rbp + 0x60]
mov qword [rsp + 0x30], rax
and dword [rsp + 0x28], 0
and qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
mov edx, 0x70140
mov rcx, qword [rbp - 0x28]
call qword [sym.imp.api_ms_win_core_io_l1_1_0.dll_DeviceIoControl]
nop dword [rax + rax]
test eax, eax
jne 0x1400510d0
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
mov r9d, eax
lea r8, str.CRawDiskLun::CleanDiskThread__6___ld
xor edx, edx
lea ecx, [rdx + 0x5e]
call qword [sym.imp.vdsutil.dll_VdsTraceEx]
nop dword [rax + rax]
test esi, esi
jne 0x1400510d0
test ebx, ebx
jg 0x1400510ca
mov esi, ebx
jmp 0x1400510d0
movzx esi, bx
or esi, r14d
mov r8d, esi
sar r8d, 0x1f
and r8d, 0xffffff9c
add r8d, 0x64
mov edx, esi
mov rcx, qword [r15 + 8]
call qword [sym.imp.vdsutil.dll_public:_void___cdecl_CVdsAsyncObjectBase::SetCompletionStatus_long_int__unsigned_long_int____ptr64]
nop dword [rax + rax]
mov rcx, qword [r15 + 8]
call qword [sym.imp.vdsutil.dll_public:_void___cdecl_CVdsAsyncObjectBase::Signal_void____ptr64]
nop dword [rax + rax]
mov rcx, qword [r15 + 8]
mov rax, qword [rcx]
movabs r10, 0xbaac1f10365eb170
mov rax, qword [rax + 0x10]
call qword [0x140063988]
nop
lea rcx, [rbp - 0x18]
call qword [sym.imp.vdsutil.dll_public:_void___cdecl_CVdsCallTracer::destructor_void____ptr64]
nop dword [rax + rax]
nop
lea rcx, [rbp - 0x20]
call sym.vds.exe_public:_void___cdecl_CVdsHeapPtr_char_::destructor_void____ptr64
nop
lea rcx, [rbp - 0x28]
call sym.vds.exe___1__CVdsHandleImpl__0_0__QEAA_XZ
xor eax, eax
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret