Function at 0x140008b90
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push r12
push r14
push r15
sub rsp, 0x20
mov r15, rcx
mov r14d, r9d
mov rcx, rdx
mov r12, r8
mov rbx, rdx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r8, rbx
xor edx, edx
mov rcx, rax
mov rsi, rax
call fcn.140021acb
test rsi, rsi
jne 0x140008bd6
xor eax, eax
add rsp, 0x20
pop r15
pop r14
pop r12
pop rsi
pop rbx
ret
mov qword [rsp + 0x68], r13
mov r13d, 0x400
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x60], rdi
nop dword [rax + rax]
cmp r13d, 4
jb case.0x140008c28.0
mov ecx, dword [r12]
call qword [sym.imp.WS2_32.dll_ntohl]
add r13d, 0xfffffffc
add r12, 4
mov edx, r13d
cmp eax, 0x10
ja case.0x140008c28.4
lea r8, [0x140000000]
cdqe
mov ecx, dword [r8 + rax*4 + 0x8ea4]
add rcx, r8
jmp rcx
cmp edx, 4
jae 0x140008c35
xor eax, eax
sub ebx, eax
jmp case.0x140008c28.4
mov ecx, dword [r12]
call qword [sym.imp.WS2_32.dll_ntohl]
add r12, 4
add r13d, 0xfffffffc
sub ebx, eax
jmp case.0x140008c28.4
cmp edx, 4
jae 0x140008c54
xor eax, eax
jmp 0x140008c66
mov ecx, dword [r12]
call qword [sym.imp.WS2_32.dll_ntohl]
add r12, 4
add r13d, 0xfffffffc
mov dword [rsp + 0x58], eax
mov rcx, rsi
cmp eax, ebx
jg 0x140008e70
movsxd r8, ebx
mov rdx, r15
call sub.VCRUNTIME140.dll_memcpy
movsxd rax, dword [rsp + 0x58]
mov rcx, r15
sub ebx, eax
movsxd r8, ebx
lea rdx, [rsi + rax]
call sub.VCRUNTIME140.dll_memcpy
jmp case.0x140008c28.4
movsxd rax, ebx
mov dword [rsp + 0x58], r14d
mov byte [rax + r15], 0
jmp 0x140008dc7
movsxd rax, ebx
mov byte [rax + r15], 0
mov eax, ebx
and eax, 0x80000001
jge 0x140008cc5
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
jne 0x140008cd1
xor ebx, ebx
jmp case.0x140008c28.4
xor edx, edx
test ebx, ebx
jle 0x140008d59
mov r8, r15
nop
mov eax, edx
shr eax, 1
cmp eax, r14d
jge 0x140008d59
movzx ecx, byte [r8]
add edx, 2
shl cl, 4
sub cl, 0x71
add cl, byte [r8 + 1]
add r8, 2
mov byte [rax + rsi], cl
cmp edx, ebx
jl 0x140008ce0
jmp 0x140008d59
movsxd rax, ebx
mov byte [rax + r15], 0
mov eax, ebx
and eax, 0x80000001
jge 0x140008d1f
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
jne 0x140008d2b
xor ebx, ebx
jmp case.0x140008c28.4
xor edx, edx
test ebx, ebx
jle 0x140008d59
mov r8, r15
mov eax, edx
shr eax, 1
cmp eax, r14d
jge 0x140008d59
movzx ecx, byte [r8]
add edx, 2
shl cl, 4
sub cl, 0x51
add cl, byte [r8 + 1]
add r8, 2
mov byte [rax + rsi], cl
cmp edx, ebx
jl 0x140008d34
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
mov ebx, eax
je case.0x140008c28.4
movsxd rdi, eax
jmp 0x140008e55
movsxd rax, ebx
mov dword [rsp + 0x58], r14d
mov byte [rax + r15], 0
test ebx, ebx
je 0x140008da4
mov rax, r15
mov edx, ebx
movzx ecx, byte [rax]
cmp cl, 0x5f
jne 0x140008d93
mov byte [rax], 0x2f
jmp 0x140008d9b
cmp cl, 0x2d
jne 0x140008d9b
mov byte [rax], 0x2b
inc rax
sub rdx, 1
jne 0x140008d86
test bl, 3
je 0x140008dc7
nop dword [rax]
cmp ebx, r14d
ja 0x140008e6d
mov eax, ebx
inc ebx
mov byte [rax + r15], 0x3d
test bl, 3
jne 0x140008db0
lea r9, [rsp + 0x58]
mov r8, rsi
mov edx, ebx
mov rcx, r15
call fcn.14000dec0
test eax, eax
jne 0x140008e6d
mov ebx, dword [rsp + 0x58]
mov rdx, rsi
mov r8d, ebx
mov rcx, r15
call sub.VCRUNTIME140.dll_memcpy
jmp case.0x140008c28.4
movsxd rax, ebx
lea r9d, [rbx - 4]
mov byte [rax + r15], 0
cmp r9d, r14d
jbe 0x140008e10
xor ebx, ebx
jmp case.0x140008c28.4
xor r8d, r8d
test r9d, r9d
jne 0x140008e1f
xor ebx, ebx
jmp case.0x140008c28.4
mov eax, r15d
sub eax, esi
movsxd r10, eax
add r10, 4
nop dword [rax + rax]
mov edx, r8d
inc r8d
mov eax, edx
and eax, 3
lea rcx, [r10 + rdx]
movzx ecx, byte [rcx + rsi]
xor cl, byte [rax + r15]
mov byte [rdx + rsi], cl
cmp r8d, r9d
jb 0x140008e30
mov ebx, r9d
movsxd rdi, r9d
mov r8, rdi
mov rdx, rsi
mov rcx, r15
call sub.VCRUNTIME140.dll_memcpy
mov byte [rdi + r15], 0
jmp case.0x140008c28.4
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
xor eax, eax
jmp 0x140008e85
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov eax, ebx
mov rdi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x50]
mov r13, qword [rsp + 0x68]
add rsp, 0x20
pop r15
pop r14
pop r12
pop rsi
pop rbx
ret