Function at 0x1400673d0
Capabilities:
Encode data using xor
Write file on windows

Disassembly:
mov rax, rsp
push rdi
push r14
push r15
sub rsp, 0x5e0
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov rax, qword [0x1401cee90]
xor rax, rsp
mov qword [rsp + 0x5d0], rax
mov rdi, rcx
cmp byte [rcx + 0x78], 0
je 0x14006741c
call fcn.140067970
test al, al
je 0x14006793d
lea r14, [rdi + 0xb0]
mov rax, qword [r14 + 8]
xor ebx, ebx
cmp qword [r14], rax
jne 0x140067713
mov r8d, dword [0x1401d6d80]
lea ecx, [r8 + 1]
imul ecx, r8d
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 7
sub ecx, edx
cmp ecx, 4
jne 0x1400674fe
mov edx, ebx
mov ecx, edx
and ecx, 1
dec ecx
not ecx
and ecx, r8d
mov eax, edx
sar eax, 1
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, r8d
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
not ecx
and ecx, r8d
sar eax, 1
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, r8d
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
not ecx
and ecx, r8d
sar eax, 1
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, r8d
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
not ecx
and ecx, r8d
sar eax, 1
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, r8d
sar ecx, 1
xor eax, ecx
add r8d, eax
inc edx
cmp edx, 0x100
jl 0x140067464
mov dword [0x1401d6d80], r8d
lea rax, [rdi + 0xd0]
mov qword [rsp + 0x38], rax
lea rbp, [rax + 8]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
cmp qword [rdi + 0x120], 0
jne 0x14006768b
mov eax, dword [0x1401d6d80]
lea ecx, [rax + 1]
imul ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x13
sub ecx, edx
cmp ecx, 0x11
jne 0x14006767d
mov rdi, rbx
mov esi, 0xaa
nop dword [rax]
call fcn.1400d57c0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [rsp + rdi*8 + 0x80], xmm0
inc rdi
cmp rdi, rsi
jb 0x140067560
mov r9d, 0xa9
nop word [rax + rax]
mov edx, 0xa9
cmp rbx, rdx
jge 0x14006766e
cmp r9, 4
jl 0x14006763d
lea rcx, [rsp + 0x5b8]
mov r8d, 0xa5
sub r8, rbx
shr r8, 2
inc r8
lea rax, [r8*4]
sub rdx, rax
nop dword [rax + rax]
movsd xmm0, qword [rcx + 0x10]
movsd xmm1, qword [rcx + 8]
comisd xmm0, xmm1
jbe 0x1400675ea
movsd qword [rcx + 0x10], xmm1
movsd qword [rcx + 8], xmm0
movsd xmm0, qword [rcx + 8]
movsd xmm1, qword [rcx]
comisd xmm0, xmm1
jbe 0x140067602
movsd qword [rcx + 8], xmm1
movsd qword [rcx], xmm0
movsd xmm0, qword [rcx]
movsd xmm1, qword [rcx - 8]
comisd xmm0, xmm1
jbe 0x14006761a
movsd qword [rcx], xmm1
movsd qword [rcx - 8], xmm0
movsd xmm0, qword [rcx - 8]
movsd xmm1, qword [rcx - 0x10]
comisd xmm0, xmm1
jbe 0x140067634
movsd qword [rcx - 8], xmm1
movsd qword [rcx - 0x10], xmm0
sub rcx, 0x20
dec r8
jne 0x1400675d0
cmp rdx, rbx
jle 0x14006766e
movsd xmm0, qword [rsp + rdx*8 + 0x80]
movsd xmm1, qword [rsp + rdx*8 + 0x78]
comisd xmm0, xmm1
jbe 0x140067666
movsd qword [rsp + rdx*8 + 0x80], xmm1
movsd qword [rsp + rdx*8 + 0x78], xmm0
dec rdx
cmp rdx, rbx
jg 0x140067642
inc rbx
dec r9
dec rsi
jne 0x140067590
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x14006793d
lea rcx, [rdi + 0x100]
lea rdx, [rsp + 0x40]
call fcn.14003a330
mov rdx, rax
mov rax, qword [rax]
test rax, rax
jne 0x1400676ac
mov rax, rbx
jmp 0x1400676af
mov rax, qword [rax]
mov rcx, qword [rax + 0x10]
dec rcx
and rcx, qword [rdx + 0x10]
mov rax, qword [rax + 8]
mov r9, qword [rax + rcx*8]
mov r8d, dword [0x1401d6d80]
mov ecx, r8d
imul ecx, r8d
mov eax, 0x38e38e39
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*8]
add eax, eax
sub ecx, eax
cmp ecx, 0x11
jne 0x1400676f7
inc r8d
mov dword [0x1401d6d80], r8d
lea rdx, [r9 + 8]
mov rcx, r14
call fcn.1400353f0
mov qword [rdi + 0xc8], rbx
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [rsp + 0x30], ebx
mov rdx, qword [r14]
mov r8, qword [r14 + 8]
sub r8, rdx
lea rcx, [rdi + 0x80]
add rdx, qword [rdi + 0xc8]
mov qword [rsp + 0x20], rcx
lea r9, [rsp + 0x30]
mov rcx, qword [rdi + 0xa8]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x1400677d5
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x6d
je 0x1400677a0
cmp eax, 0x3e5
je 0x14006779a
lea rax, str.Channel_write_failure
mov qword [rsp + 0x38], rax
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x40]
call fcn.1400d8288
nop
lea rax, vtable.CRSimpleIPCException.0
mov qword [rsp + 0x40], rax
lea rdx, [0x140199910]
lea rcx, [rsp + 0x40]
call fcn.1400dccd8
int3
mov byte [rdi + 0x78], 1
jmp 0x1400677d5
lea rcx, [rsp + 0x58]
call fcn.1400d8300
nop
lea rax, vtable.CRSimpleIPCException.0
mov qword [rsp + 0x58], rax
lea rax, vtable.CRSimpleIPCExceptionDisconnected.0
mov qword [rsp + 0x58], rax
lea rdx, [0x1401998c8]
lea rcx, [rsp + 0x58]
call fcn.1400dccd8
int3
cmp byte [rdi + 0x78], 0
jne 0x140067904
mov eax, dword [rsp + 0x30]
add qword [rdi + 0xc8], rax
mov bpl, 1
mov eax, dword [0x1401d6d80]
mov ecx, eax
imul ecx, eax
imul ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
shl eax, 2
sub ecx, eax
cmp ecx, 0x12
jne 0x14006785a
mov ecx, 0x28
call fcn.1400d4448
mov r15, rax
mov rsi, rbx
nop dword [rax]
call fcn.1400d57c0
add eax, dword [0x1401d6d80]
mov dword [r15 + rsi*4], eax
inc rsi
cmp rsi, 0xa
jl 0x140067830
mov ecx, dword [r15 + 0x24]
mov dword [0x1401d6d80], ecx
mov rcx, r15
call fcn.1400d5528
mov rax, qword [r14 + 8]
sub rax, qword [r14]
cmp qword [rdi + 0xc8], rax
jne 0x1400678f1
lea rax, [rdi + 0xd0]
mov qword [rsp + 0x38], rax
lea rsi, [rax + 8]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
cmp qword [rdi + 0x120], 0
je 0x1400678ce
mov rcx, qword [rdi + 0x110]
dec rcx
and rcx, qword [rdi + 0x118]
mov rax, qword [rdi + 0x108]
mov rcx, qword [rax + rcx*8]
mov rax, qword [rcx]
xor edx, edx
call qword [rax]
dec qword [rdi + 0x120]
jne 0x1400678c7
mov qword [rdi + 0x118], rbx
jmp 0x1400678ce
inc qword [rdi + 0x118]
mov rax, qword [r14]
mov qword [r14 + 8], rax
mov qword [rdi + 0xc8], rbx
cmp qword [rdi + 0x120], 0
setne bpl
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, qword [rdi + 0xa0]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
movzx eax, bpl
jmp 0x14006793f
mov ecx, dword [0x1401d6d80]
imul ecx, ecx
mov eax, 0x30c30c31
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x15
sub ecx, edx
cmp ecx, 0xe
jne 0x14006793d
mov edx, VariantChangeTypeEx
lea r8d, [rdx + 1]
lea rcx, [0x14015e72c]
call fcn.1400d5714
xor al, al
mov rcx, qword [rsp + 0x5d0]
xor rcx, rsp
call fcn.1400d4e00
lea r11, [rsp + 0x5e0]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rdi
ret