Function at 0x140089e20
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x50
mov rax, qword [0x1402bf070]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov r12, qword [rsp + 0xb0]
mov rdi, r8
mov qword [rsp + 0x20], r12
mov rbp, rdx
mov qword [rsp + 0x28], r9
mov rbx, rcx
mov r15d, 2
cmp rcx, rdx
je 0x140089ed4
mov rsi, r12
cmp r8, 0x10
jb 0x140089ec7
mov r14, r8
mov r12, r9
shr r14, 4
imul rax, r14, 0xfffffffffffffff0
add rdi, rax
nop
mov r8, r12
mov rdx, rbp
mov rcx, rbx
call fcn.140089830
mov rcx, rbp
sub rsi, rbp
mov rdx, r15
nop word [rax + rax]
mov rax, qword [rsi + rcx]
xor qword [rcx], rax
lea rcx, [rcx + 8]
sub rdx, 1
jne 0x140089ea0
mov rsi, rbx
add rbp, 0x10
add rbx, 0x10
sub r14, 1
jne 0x140089e80
mov r12, qword [rsp + 0x20]
movups xmm0, xmmword [rsi]
movups xmmword [r12], xmm0
jmp 0x140089f73
cmp rdi, 0x10
jb 0x140089f73
lea rax, [rsp + 0x38]
mov r14, r12
sub r14, rax
mov r15, rdi
shr r15, 4
lea rax, [rsp + 0x38]
mov rsi, rbp
mov r12, r9
sub rsi, rax
imul rax, r15, 0xfffffffffffffff0
add rdi, rax
mov rax, r15
shl rax, 4
add rbp, rax
nop
mov r8, r12
lea rdx, [rsp + 0x38]
mov rcx, rbx
call fcn.140089830
xor r8d, r8d
nop dword [rax]
nop word [rax + rax]
lea rcx, [rsp + 0x38]
mov rax, rbx
sub rax, rcx
lea rdx, [rsp + 0x38]
add rdx, r8
add r8, 8
mov rcx, qword [rax + rdx]
mov rax, qword [r14 + rdx]
xor rax, qword [rdx]
mov qword [rsi + rdx], rax
mov qword [r14 + rdx], rcx
cmp r8, 0x10
jb 0x140089f30
add rbx, 0x10
add rsi, 0x10
sub r15, 1
jne 0x140089f10
mov r12, qword [rsp + 0x20]
test rdi, rdi
je 0x14008a0f8
mov qword [rsp + 0xa0], r13
lea rax, [rsp + 0x39]
sub rax, r12
lea r15, [rsp + 0x38]
mov qword [rsp + 0x20], rax
lea r14, [rsp + 0x3a]
mov rsi, rbx
mov eax, 2
sub rsi, r12
sub rax, r12
mov r13d, 1
mov qword [rsp + 0x30], rax
sub r15, r12
sub r13, r12
sub r14, r12
add rsi, 2
sub rbp, r12
add rbp, 2
nop dword [rax + rax]
mov r8, qword [rsp + 0x28]
lea rdx, [rsp + 0x38]
mov rcx, rbx
call fcn.140089830
mov r10, rbx
lea rcx, [r12 - 2]
sub r10, rcx
lea rax, [r12 + 1]
xor r9d, r9d
sub r10, rbp
nop dword [rax + rax]
cmp r9, rdi
jae 0x14008a0a3
movzx ecx, byte [rax + r15 - 1]
xor cl, byte [rax - 1]
movzx edx, byte [rax + rsi - 3]
mov byte [rax + rbp - 3], cl
mov rcx, rax
sub rcx, r12
mov byte [rax - 1], dl
cmp rcx, rdi
jae 0x14008a0a0
movzx ecx, byte [rax + r15]
lea rdx, [rax + rbp]
xor cl, byte [rax]
movzx r8d, byte [r10 + rdx - 2]
mov byte [rdx - 2], cl
lea rcx, [rax + r13]
mov byte [rax], r8b
cmp rcx, rdi
jae 0x14008a09a
mov rcx, qword [rsp + 0x20]
movzx edx, byte [rax + rsi - 1]
movzx ecx, byte [rax + rcx]
xor cl, byte [rax + 1]
mov byte [rax + rbp - 1], cl
mov rcx, qword [rsp + 0x30]
add rcx, rax
mov byte [rax + 1], dl
cmp rcx, rdi
jae 0x14008a094
movzx edx, byte [rax + rsi]
add r9, 4
movzx ecx, byte [rax + r14]
xor cl, byte [rax + 2]
mov byte [rax + rbp], cl
mov byte [rax + 2], dl
add rax, 4
cmp r9, 0x10
jb 0x14008a000
jmp 0x14008a0a3
add r9, 3
jmp 0x14008a0a3
add r9, 2
jmp 0x14008a0a3
inc r9
cmp rdi, 0x10
jbe 0x14008a0c1
add rbx, 0x10
add rsi, 0x10
add rbp, 0x10
sub rdi, 0x10
jne 0x140089fd0
jmp 0x14008a0f0
cmp r9, 0x10
jae 0x14008a0f0
sub rbx, r12
lea rcx, [r12 + r9]
mov edx, reloc.WS2_32.dll_recv
sub rdx, r9
nop word [rax + rax]
movzx eax, byte [rbx + rcx]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x14008a0e0
mov r13, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1400b9f70
add rsp, 0x50
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret