Function at 0x1400bc158
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov rax, qword [0x1401ea088]
xor rax, rsp
mov qword [rsp + 0x50], rax
cmp dword [rcx + 0x58], 2
jb 0x1400bc3b0
mov rdi, r9
mov rbx, r8
mov ebp, edx
mov rsi, rcx
mov r15, qword [rsp + 0xb0]
xorps xmm0, xmm0
lea r14, [rsp + 0x30]
movaps xmmword [r14], xmm0
mov qword [r14 + 0x10], 0
lea r8, [rsp + 0x2f]
mov byte [r8], 0
xor eax, eax
cmp rbx, 0x7e
setae al
lea rcx, [rax*2 + 6]
add rax, rax
cmp rbx, 0x10000
cmovae rax, rcx
movzx ecx, byte [rsi + 0x5c]
lea rdx, [rax + rcx*4]
add rdx, 2
mov rcx, r14
call fcn.1400bc3cc
or bpl, 0x80
mov rax, qword [r14]
mov byte [rax], bpl
cmp rbx, 0x7d
ja 0x1400bc234
movzx eax, byte [rsi + 0x5c]
shl eax, 7
or eax, ebx
mov rcx, qword [rsp + 0x30]
mov byte [rcx + 1], al
cmp byte [rsi + 0x5c], 0
je 0x1400bc328
mov rax, qword [rsp + 0x30]
mov byte [rax + 2], reloc.WS2_32.dll_select
mov rax, qword [rsp + 0x30]
mov byte [rax + 3], 0x34
mov rax, qword [rsp + 0x30]
mov byte [rax + 4], 0x56
mov rax, qword [rsp + 0x30]
add rax, 5
jmp 0x1400bc325
mov cl, byte [rsi + 0x5c]
mov rax, qword [rsp + 0x30]
cmp rbx, 0xffff
ja 0x1400bc29a
test cl, cl
mov ecx, 0x7e
mov edx, 0xfe
cmove edx, ecx
mov byte [rax + 1], dl
mov rax, qword [rsp + 0x30]
mov byte [rax + 2], bh
mov rax, qword [rsp + 0x30]
mov byte [rax + 3], bl
cmp byte [rsi + 0x5c], 0
je 0x1400bc328
mov rax, qword [rsp + 0x30]
mov byte [rax + 4], reloc.WS2_32.dll_select
mov rax, qword [rsp + 0x30]
mov byte [rax + 5], 0x34
mov rax, qword [rsp + 0x30]
mov byte [rax + 6], 0x56
mov rax, qword [rsp + 0x30]
add rax, 7
jmp 0x1400bc325
test cl, cl
setne cl
shl cl, 7
or cl, 0x7f
mov byte [rax + 1], cl
mov rax, rbx
shr rax, 0x38
mov rcx, qword [rsp + 0x30]
mov byte [rcx + 2], al
mov rax, rbx
shr rax, 0x30
mov rcx, qword [rsp + 0x30]
mov byte [rcx + 3], al
mov rax, rbx
shr rax, 0x28
mov rcx, qword [rsp + 0x30]
mov byte [rcx + 4], al
mov rax, rbx
shr rax, 0x20
mov rcx, qword [rsp + 0x30]
mov byte [rcx + 5], al
mov rax, rbx
shr rax, 0x18
mov rcx, qword [rsp + 0x30]
mov byte [rcx + 6], al
mov rax, rbx
shr rax, 0x10
mov rcx, qword [rsp + 0x30]
mov byte [rcx + 7], al
mov ecx, ebx
rol cx, 8
mov rax, qword [rsp + 0x30]
mov word [rax + 8], cx
cmp byte [rsi + 0x5c], 0
je 0x1400bc328
mov word [rax + 0xa], 0x3412
mov byte [rax + 0xc], 0x56
add rax, 0xd
mov byte [rax], pe_nt_image_headers64
lea r14, [rsi + 0x20]
mov r8, qword [rsp + 0x30]
mov r9, qword [rsp + 0x38]
mov rdx, qword [rsi + 0x28]
sub r9, r8
mov rcx, r14
call fcn.1400bc4e2
mov rdx, qword [rsi + 0x28]
sub r15, rdi
mov rcx, r14
mov r8, rdi
mov r9, r15
call fcn.1400bc4e2
cmp byte [rsi + 0x5c], 0
je 0x1400bc399
test rbx, rbx
je 0x1400bc399
mov rax, qword [rsi + 0x28]
mov rcx, qword [rsi + 0x20]
add rcx, rbx
sub rax, rcx
xor ecx, ecx
lea rdx, [0x1401ae880]
mov r8d, ecx
and r8d, 3
mov r8b, byte [r8 + rdx]
mov r9, qword [r14]
add r9, rax
xor byte [rcx + r9], r8b
inc rcx
cmp rbx, rcx
jne 0x1400bc37c
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x1400bc3b0
mov rdx, qword [rsp + 0x40]
sub rdx, rcx
call fcn.140002b34
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.14015c2e0
nop
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret