Function at 0x1401cb900
Capabilities:
Encode data using xor

Disassembly:
push rbp
mov rbp, rsp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
and rsp, 0xfffffffffffffff0
sub rsp, 0x870
mov word [rsp + 0x36], dx
test rcx, rcx
je 0x1401cbe01
call fcn.1400f8260
mov ecx, 0x7e
mov r12d, 1
lea rdi, [rsp + 0x80]
mov qword [rsp + 0x38], rax
xor eax, eax
lea r15, [rsp + 0x70]
rep stosq qword [rdi], rax
lea rdi, [rsp + 0x480]
mov ecx, 0x7e
mov qword [rsp + 0x70], 0
rep stosq qword [rdi], rax
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x470], 0
mov qword [rsp + 0x478], 0
mov qword [rsp + 0x48], 0xffffffffffffffff
mov rax, qword [rsp + 0x38]
lea rdi, [rsp + 0x470]
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x50], rax
mov rbx, rax
test rax, rax
jne 0x1401cb9d3
jmp 0x1401cbba5
cmp r12d, 1
je 0x1401cbda0
test rbx, rbx
je 0x1401cbba5
mov rax, rbx
mov qword [rsp + 0x58], rbx
mov rbx, qword [rbx + 8]
mov r13, qword [rax]
cmp r12d, 2
je 0x1401cbbf0
cmp r12d, 3
jne 0x1401cb9c0
xor eax, eax
mov ecx, pe_nt_image_headers64
mov rdi, r15
cmp word [r13 + 0x56], 0
rep stosq qword [rdi], rax
lea rdi, [r13 + 0x32]
je 0x1401cbb6d
xor r14d, r14d
lea rsi, [rsp + 0x68]
nop word [rax + rax]
mov edx, dword [r13 + 0x2a]
mov r8d, r14d
mov rcx, rdi
call fcn.1400803d0
mov rdx, rsi
mov qword [rsp + 0x68], 0
mov rcx, rax
call fcn.1400ffbe0
mov ecx, 0x400
mov r8, rax
mov rax, qword [rsp + 0x68]
cmp rax, rcx
cmovbe rcx, rax
test rax, rax
je 0x1401cbb5b
cmp rax, 0xf
jbe 0x1401cbdca
mov r9, rcx
mov rdx, r15
mov rax, r8
and r9, 0xfffffffffffffff0
add r9, r8
nop word [rax + rax]
movdqu xmm0, xmmword [rax]
pxor xmm0, xmmword [rdx]
add rax, 0x10
add rdx, 0x10
movaps xmmword [rdx - 0x10], xmm0
cmp r9, rax
jne 0x1401cba80
mov rax, rcx
and rax, 0xfffffffffffffff0
test cl, 0xf
je 0x1401cbb5b
mov rdx, rcx
sub rdx, rax
lea r9, [rdx - 1]
cmp r9, 6
jbe 0x1401cbae0
lea r9, [r15 + rax]
movq xmm1, qword [r8 + rax]
movq xmm0, qword [r9]
pxor xmm0, xmm1
movq qword [r9], xmm0
mov r9, rdx
and r9, 0xfffffffffffffff8
add rax, r9
cmp rdx, r9
je 0x1401cbb5b
movzx edx, byte [r8 + rax]
xor byte [r15 + rax], dl
lea rdx, [rax + 1]
cmp rcx, rdx
jbe 0x1401cbb5b
movzx r9d, byte [r8 + rax + 1]
xor byte [r15 + rdx], r9b
lea rdx, [rax + 2]
cmp rcx, rdx
jbe 0x1401cbb5b
movzx r9d, byte [r8 + rax + 2]
xor byte [r15 + rdx], r9b
lea rdx, [rax + 3]
cmp rcx, rdx
jbe 0x1401cbb5b
movzx r9d, byte [r8 + rax + 3]
xor byte [r15 + rdx], r9b
lea rdx, [rax + 4]
cmp rcx, rdx
jbe 0x1401cbb5b
movzx r9d, byte [r8 + rax + 4]
xor byte [r15 + rdx], r9b
lea rdx, [rax + 5]
cmp rcx, rdx
jbe 0x1401cbb5b
movzx r9d, byte [r8 + rax + 5]
xor byte [r15 + rdx], r9b
lea rdx, [rax + 6]
cmp rcx, rdx
jbe 0x1401cbb5b
movzx eax, byte [r8 + rax + 6]
xor byte [r15 + rdx], al
movzx eax, word [r13 + 0x56]
add r14d, 1
cmp r14d, eax
jl 0x1401cba20
mov rcx, qword [rsp + 0x40]
mov r8d, 0x400
mov rdx, r15
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x1401cb9ca
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
call fcn.1400f84b0
mov qword [rsp + 0x50], rax
test rbx, rbx
jne 0x1401cb9d3
mov rcx, qword [rsp + 0x50]
call fcn.1400f8840
test eax, eax
je 0x1401cbe01
cmp eax, 1
je 0x1401cbe50
add r12d, 1
cmp r12d, 5
je 0x1401cbe0d
cmp qword [rsp + 0x38], 0
je 0x1401cbdd1
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x38], rax
jmp 0x1401cb992
mov rax, qword [rsp + 0x48]
cmp qword [r13 + 2], rax
jne 0x1401cbb88
xor eax, eax
mov ecx, pe_nt_image_headers64
mov rdi, r15
cmp word [r13 + 0x56], 0
rep stosq qword [rdi], rax
lea rdi, [r13 + 0x32]
je 0x1401cbd6d
xor r14d, r14d
lea rsi, [rsp + 0x68]
mov edx, dword [r13 + 0x2a]
mov r8d, r14d
mov rcx, rdi
call fcn.1400803d0
mov rdx, rsi
mov qword [rsp + 0x68], 0
mov rcx, rax
call fcn.1400ffbe0
mov ecx, 0x400
mov r8, rax
mov rax, qword [rsp + 0x68]
cmp rax, rcx
cmovbe rcx, rax
test rax, rax
je 0x1401cbd5b
cmp rax, 0xf
jbe 0x1401cbe06
mov r9, rcx
mov rdx, r8
mov rax, r15
and r9, 0xfffffffffffffff0
add r9, r8
nop word [rax + rax]
movdqu xmm0, xmmword [rdx]
pxor xmm0, xmmword [rax]
add rdx, 0x10
add rax, 0x10
movaps xmmword [rax - 0x10], xmm0
cmp rdx, r9
jne 0x1401cbc80
mov rax, rcx
and rax, 0xfffffffffffffff0
test cl, 0xf
je 0x1401cbd5b
mov rdx, rcx
sub rdx, rax
lea r9, [rdx - 1]
cmp r9, 6
jbe 0x1401cbce0
lea r9, [r15 + rax]
movq xmm1, qword [r8 + rax]
movq xmm0, qword [r9]
pxor xmm0, xmm1
movq qword [r9], xmm0
mov r9, rdx
and r9, 0xfffffffffffffff8
add rax, r9
cmp r9, rdx
je 0x1401cbd5b
movzx edx, byte [r8 + rax]
xor byte [r15 + rax], dl
lea rdx, [rax + 1]
cmp rcx, rdx
jbe 0x1401cbd5b
movzx r9d, byte [r8 + rax + 1]
xor byte [r15 + rdx], r9b
lea rdx, [rax + 2]
cmp rcx, rdx
jbe 0x1401cbd5b
movzx r9d, byte [r8 + rax + 2]
xor byte [r15 + rdx], r9b
lea rdx, [rax + 3]
cmp rcx, rdx
jbe 0x1401cbd5b
movzx r9d, byte [r8 + rax + 3]
xor byte [r15 + rdx], r9b
lea rdx, [rax + 4]
cmp rcx, rdx
jbe 0x1401cbd5b
movzx r9d, byte [r8 + rax + 4]
xor byte [r15 + rdx], r9b
lea rdx, [rax + 5]
cmp rcx, rdx
jbe 0x1401cbd5b
movzx r9d, byte [r8 + rax + 5]
xor byte [r15 + rdx], r9b
lea rdx, [rax + 6]
cmp rcx, rdx
jbe 0x1401cbd5b
movzx eax, byte [r8 + rax + 6]
xor byte [r15 + rdx], al
movzx eax, word [r13 + 0x56]
add r14d, 1
cmp r14d, eax
jl 0x1401cbc20
mov rdi, qword [rsp + 0x40]
mov r8d, 0x400
mov rdx, r15
mov rcx, rdi
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x1401cb9ca
mov ecx, pe_nt_image_headers64
mov rsi, r15
rep movsq qword [rdi], qword [rsi]
jmp 0x1401cb9ca
movzx eax, word [rsp + 0x36]
cmp word [r13 + 0x56], ax
jne 0x1401cbb88
mov rsi, qword [rsp + 0x48]
mov rax, qword [r13 + 2]
cmp rsi, rax
cmovbe rax, rsi
mov qword [rsp + 0x48], rax
jmp 0x1401cb9ca
xor eax, eax
jmp 0x1401cbaa9
mov rbx, qword [rsp + 0x50]
mov rcx, rbx
call fcn.1400f8840
test eax, eax
je 0x1401cbe01
cmp eax, 1
je 0x1401cbe50
lea eax, [r12 + 1]
cmp r12d, 3
ja 0x1401cbe0d
mov rcx, rbx
mov r12d, eax
call fcn.1400f8840
test eax, eax
jne 0x1401cbde2
xor r12d, r12d
jmp 0x1401cbe3c
xor eax, eax
jmp 0x1401cbca9
lea rax, str.POA_rounds_filtering:_Cant_choose_only_one_item_with_current_filters__need_to_increase_its_number
xor ecx, ecx
mov r9d, 7
xor edx, edx
mov qword [rsp + 0x20], rax
lea r8, str.dap_chain_cs_dag_poa
call fcn.14005a160
mov rcx, qword [rsp + 0x50]
mov r12, qword [rcx]
call fcn.1400f8600
lea rsp, [rbp - 0x38]
mov rax, r12
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rcx, qword [rsp + 0x50]
mov r12, qword [rcx]
call sub.msvcrt.dll_free
jmp 0x1401cbe3c