Function at 0x6db550
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
cmp qword [r8 + 0x118], 0xffffffffffffffff
mov r13, qword [rsp + 0xe0]
mov rdi, qword [rsp + 0xe8]
mov r15d, dword [rsp + 0xf0]
mov r12, rcx
mov rbx, rdx
mov rsi, r8
mov rbp, r9
je 0x6db928
mov dword [rbx + 8], 3
mov qword [rbx + 0x80], rsi
mov qword [rbx + 0x78], 0
mov qword [rbx + 0x70], rdi
mov dword [rbx + 0x88], 0
mov qword [rbx + 0xa0], 0
mov qword [rbx + 0xa8], 0xffffffffffffffff
mov qword [rbx + 0x40], 0
mov qword [rbx + 0x48], 0
mov qword [rbx + 0x50], 0
mov qword [rbx + 0x58], 0
test dword [rsi + 0x58], 0x180000
jne 0x6db7e0
mov dword [rbx + 0x90], 0
mov qword [rbx + 0x98], 0
test r13, r13
je 0x6db718
mov edi, dword [rbp]
cmp r13, 1
jne 0x6db950
and r15d, 1
jne 0x6db950
mov r14, qword [rbp]
mov r10, qword [rbp + 8]
mov eax, dword [rsi + 0x58]
mov edx, eax
and edx, 0x1100000
cmp edx, 0x1100000
je 0x6db880
test eax, 0x1000000
je 0x6db728
movabs rax, 0xffffffff00000000
mov qword [rbx + 0x98], r10
and r14, rax
mov qword [rbx + 0x68], 0
or r14, rdi
mov qword [rbx + 0x90], r14
mov rax, qword [rsi + 0x208]
test rax, rax
je 0x6dbab8
mov rax, qword [rax + 0x68]
mov qword [rbx + 0x68], rax
mov rax, qword [rsi + 0x208]
mov qword [rax + 0x68], rbx
mov qword [rsi + 0x208], rbx
mov eax, dword [rsi + 0x100]
test eax, eax
je 0x6dbaa8
mov qword [rbx + 0x60], rdi
add qword [rsi + 0x60], rdi
mov eax, dword [rsi + 0x7c]
lea edx, [rax + 1]
mov dword [rsi + 0x7c], edx
test eax, eax
je 0x6db7b0
test edx, edx
jg 0x6db6ed
mov r8d, 0x5b1
lea rdx, str.src_win_pipe.c
lea rcx, [0x00958c19]
call qword [sym.imp.msvcrt.dll__assert]
add dword [r12 + 0x20], 1
add dword [rsi + 0x78], 1
add dword [rsi + 0x100], 1
xor r12d, r12d
mov eax, r12d
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor r10d, r10d
xor edi, edi
jmp 0x6db636
lea rdx, [rbx + 0x40]
mov rcx, qword [rsi + 0x118]
xor r9d, r9d
mov r8d, edi
mov qword [rsp + 0x20], rdx
mov rdx, r10
test eax, 0x100000
je 0x6db810
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x6dbb00
mov qword [rbx + 0x60], 0
mov rcx, qword [rbx + 0xa0]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [rsi + 0x7c]
mov qword [rbx + 0xa0], 0
lea edx, [rax + 1]
mov dword [rsi + 0x7c], edx
test eax, eax
je 0x6db7b0
test edx, edx
jg 0x6db6ed
mov r8d, 0x590
lea rdx, str.src_win_pipe.c
lea rcx, [0x00958c19]
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x6db6ed
mov eax, dword [rsi + 0x58]
test al, 4
jne 0x6db6ed
mov edx, eax
or edx, 4
mov dword [rsi + 0x58], edx
test al, 8
je 0x6db6ed
mov rax, qword [rsi + 8]
add dword [rax + 8], 1
jmp 0x6db6ed
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventA]
mov qword [rbx + 0xa0], rax
test rax, rax
je 0x6dbbe9
or rax, 1
mov qword [rbx + 0x58], rax
jmp 0x6db5f9
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x6dbb58
mov qword [rbx + 0x60], 0
test byte [rsi + 0x5a], 8
je 0x6db6be
mov rdx, qword [rbx + 0xa0]
lea rcx, [rbx + 0xa8]
mov dword [rsp + 0x28], 4
mov r9, rbx
mov dword [rsp + 0x20], 0xffffffff
lea r8, [0x006da8f0]
call qword [sym.imp.KERNEL32.dll_RegisterWaitForSingleObject]
test eax, eax
jne 0x6db6be
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp qword [sym.imp.KERNEL32.dll_GetLastError]
mov qword [rsp + 0x20], 0
mov rcx, qword [rsi + 0x118]
mov r8d, edi
mov rdx, r10
lea r9, [rsp + 0x6c]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x6dbbd0
mov eax, dword [rsi + 0x7c]
mov qword [rbx + 0x60], 0
lea edx, [rax + 1]
mov dword [rsi + 0x7c], edx
test eax, eax
jne 0x6dbad0
mov eax, dword [rsi + 0x58]
test al, 4
jne 0x6db8e0
mov edx, eax
or edx, 4
mov dword [rsi + 0x58], edx
test al, 8
je 0x6db8e0
mov rax, qword [rsi + 8]
add dword [rax + 8], 1
nop dword [rax]
add dword [r12 + 0x20], 1
xor r8d, r8d
xor edx, edx
mov rcx, qword [r12 + 0x38]
add dword [rsi + 0x78], 1
lea r9, [rbx + 0x40]
add dword [rsi + 0x100], 1
call qword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
test eax, eax
jne 0x6db6fe
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, [0x00958a08]
mov ecx, eax
call fcn.006cf7a0
nop dword [rax]
mov r8d, 0x52d
lea rdx, str.src_win_pipe.c
lea rcx, str.handle__handle___INVALID_HANDLE_VALUE
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x6db592
xor edx, edx
xor r15d, r15d
jmp 0x6db968
shl rax, 4
mov edi, dword [rbp + rax]
lea eax, [rdx + 1]
add r15, rdi
mov rdx, rax
cmp r13, rax
ja 0x6db960
mov eax, 0xffffffff
cmp r15, rax
ja 0x6dbb78
lea rax, [r15 + 0xb8]
mov rcx, rax
mov qword [rsp + 0x40], rax
call fcn.006cb300
mov r14, rax
test rax, rax
je 0x6dbbde
movdqu xmm0, xmmword [rbx]
lea rax, [rax + 0xb8]
xor r11d, r11d
mov edi, 0xb8
movups xmmword [rax - 0xb8], xmm0
movdqu xmm1, xmmword [rbx + 0x10]
movups xmmword [rax - 0xa8], xmm1
movdqu xmm2, xmmword [rbx + 0x20]
movups xmmword [rax - 0x98], xmm2
movdqu xmm3, xmmword [rbx + 0x30]
movups xmmword [rax - 0x88], xmm3
movdqu xmm4, xmmword [rbx + 0x40]
movups xmmword [rax - 0x78], xmm4
movdqu xmm5, xmmword [rbx + 0x50]
movups xmmword [rax - 0x68], xmm5
movdqu xmm0, xmmword [rbx + 0x60]
movups xmmword [rax - 0x58], xmm0
movdqu xmm1, xmmword [rbx + 0x70]
movups xmmword [rax - 0x48], xmm1
movdqu xmm2, xmmword [rbx + 0x80]
movups xmmword [rax - 0x38], xmm2
movdqu xmm3, xmmword [rbx + 0x90]
movups xmmword [rax - 0x28], xmm3
movdqu xmm4, xmmword [rbx + 0xa0]
mov qword [rax - 8], rbx
xor ebx, ebx
movups xmmword [rax - 0x18], xmm4
mov dword [rax - 0x30], 1
mov qword [rsp + 0x48], rax
nop dword [rax]
shl rbx, 4
lea rcx, [r14 + rdi]
mov dword [rsp + 0x3c], r11d
add rbx, rbp
mov rdx, qword [rbx + 8]
mov r8d, dword [rbx]
call sub.msvcrt.dll_memcpy
mov r11d, dword [rsp + 0x3c]
mov eax, dword [rbx]
lea ebx, [r11 + 1]
add rdi, rax
mov r11, rbx
cmp r13, rbx
ja 0x6dba40
cmp qword [rsp + 0x40], rdi
jne 0x6dbb88
mov rdx, qword [rsp + 0x48]
lea rcx, [rsp + 0x50]
mov r8d, r15d
mov rbx, r14
call fcn.006cb4c0
mov r14, qword [rsp + 0x50]
mov r10, qword [rsp + 0x58]
mov edi, r14d
jmp 0x6db636
mov rcx, rsi
call fcn.006db1a0
jmp 0x6db6b6
mov qword [rbx + 0x68], rbx
mov qword [rsi + 0x208], rbx
jmp 0x6db6a8
test edx, edx
jg 0x6db8e0
mov r8d, 0x560
lea rdx, str.src_win_pipe.c
lea rcx, [0x00958c19]
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x6db8e0
mov rbp, qword [sym.imp.KERNEL32.dll_GetLastError]
call rbp
cmp eax, 0x3e5
jne 0x6dbb32
mov qword [rbx + 0x60], rdi
mov rcx, qword [rbx + 0xa0]
mov edx, 0xffffffff
add qword [rsi + 0x60], rdi
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x6db762
call rbp
mov rcx, qword [rbx + 0xa0]
mov r12d, eax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbx + 0xa0], 0
jmp 0x6db701
mov rbp, qword [sym.imp.KERNEL32.dll_GetLastError]
call rbp
cmp eax, 0x3e5
jne 0x6dbbb0
mov qword [rbx + 0x60], rdi
add qword [rsi + 0x60], rdi
jmp 0x6db826
mov r12d, 0x2747
jmp 0x6db701
mov r8d, 0x519
lea rdx, str.src_win_pipe.c
lea rcx, str.heap_buffer_offset__heap_buffer_length
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x6dba7d
mov rax, rbp
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r12d, eax
jmp 0x6db701
mov r12d, 8
jmp 0x6db701
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, [0x00958bdf]
mov ecx, eax
call fcn.006cf7a0
nop
nop