Function at 0x1400c9e70
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push r15
sub rsp, 0xb8
mov rax, qword [0x1409b0280]
xor rax, rsp
mov qword [rsp + 0x80], rax
mov rbp, rcx
mov dword [rsp + 0x30], r9d
mov ecx, r9d
mov qword [rsp + 0x38], r8
mov r15d, edx
call fcn.1400bfa60
movsxd rdi, eax
test eax, eax
js 0x1400ca28c
lea ecx, [rdi*2 + 2]
cmp r15d, ecx
jb 0x1400ca28c
mov rax, qword [0x1409f4538]
mov ecx, r15d
mov qword [rsp + 0xb0], rbx
test rax, rax
je 0x1400c9edd
call rax
jmp 0x1400c9ee2
call fcn.140175580
mov rbx, rax
test rax, rax
jne 0x1400c9ef2
lea eax, [rbx - 0x7d]
jmp 0x1400ca168
mov qword [rsp + 0xa8], r12
mov r8, r15
xor edx, edx
mov qword [rsp + 0xa0], r13
mov rcx, rbx
call fcn.140195d30
mov r12d, dword [rsp + 0x100]
lea eax, [rdi + 1]
mov r13d, r15d
movsxd rdx, eax
sub r13d, edi
add rdx, rbp
dec r13d
mov ecx, r12d
sub ecx, 1
je 0x1400c9f5c
sub ecx, 1
je 0x1400c9f55
sub ecx, 1
je 0x1400c9f4e
cmp ecx, 0x17
je 0x1400c9f47
mov esi, 0xffffff53
jmp 0x1400c9f76
mov ecx, 4
jmp 0x1400c9f61
mov ecx, 8
jmp 0x1400c9f61
mov ecx, 7
jmp 0x1400c9f61
mov ecx, 6
mov r9, rbx
mov dword [rsp + 0x20], edi
mov r8d, r13d
call fcn.1400c93d0
mov esi, eax
test eax, eax
je 0x1400c9f9a
mov rax, qword [0x1409f4530]
mov rcx, rbx
test rax, rax
je 0x1400c9f8e
call rax
mov eax, esi
jmp 0x1400ca158
call fcn.14017007c
mov eax, esi
jmp 0x1400ca158
mov qword [rsp + 0x98], r14
xor r14d, r14d
mov r8d, r14d
test edi, edi
je 0x1400ca0e3
cmp edi, 8
jb 0x1400ca0b7
lea edx, [rdi - 1]
mov eax, edi
add rdx, rbx
lea rcx, [rbp + 1]
add rax, rbp
cmp rbx, rax
ja 0x1400c9fd6
cmp rdx, rcx
jae 0x1400ca0b7
cmp edi, 0x40
jb 0x1400ca079
mov r9d, edi
mov r11d, edi
and r9d, 0x3f
sub r11d, r9d
mov r10d, reloc.WS2_32.dll_recvfrom
nop dword [rax]
nop word [rax + rax]
mov edx, r8d
lea eax, [r10 - 0x10]
movdqu xmm1, xmmword [rax + rbp]
mov eax, r10d
lea ecx, [r10 - 1]
add r8d, 0x40
movdqu xmm0, xmmword [rdx + rbx]
xorps xmm1, xmm0
movdqu xmmword [rdx + rbx], xmm1
lea edx, [r10 + 0xf]
movdqu xmm0, xmmword [rcx + rbx]
movdqu xmm1, xmmword [rax + rbp]
lea eax, [r10 + 0x10]
xorps xmm1, xmm0
movdqu xmmword [rcx + rbx], xmm1
movdqu xmm0, xmmword [rdx + rbx]
movdqu xmm1, xmmword [rax + rbp]
lea eax, [r10 + 0x20]
xorps xmm1, xmm0
movdqu xmmword [rdx + rbx], xmm1
lea edx, [r10 + 0x1f]
add r10d, 0x40
movdqu xmm0, xmmword [rdx + rbx]
movdqu xmm1, xmmword [rax + rbp]
xorps xmm1, xmm0
movdqu xmmword [rdx + rbx], xmm1
cmp r8d, r11d
jb 0x1400ca000
cmp r9d, 8
jb 0x1400ca0b2
mov eax, edi
mov r9d, edi
and eax, 7
sub r9d, eax
nop dword [rax]
nop dword [rax + rax]
mov edx, r8d
lea eax, [r8 + 1]
movq xmm1, qword [rax + rbp]
add r8d, 8
movq xmm0, qword [rdx + rbx]
xorps xmm1, xmm0
movq qword [rdx + rbx], xmm1
cmp r8d, r9d
jb 0x1400ca090
cmp r8d, edi
jae 0x1400ca0e3
mov ecx, r8d
lea edx, [r8 + 1]
add rcx, rbx
add rdx, rbp
mov eax, edi
sub eax, r8d
mov r8d, eax
nop dword [rax]
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub r8, 1
jne 0x1400ca0d0
lea r9, [rbx + rdi]
sub r12d, 1
je 0x1400ca11b
sub r12d, 1
je 0x1400ca114
sub r12d, 1
je 0x1400ca10d
cmp r12d, 0x17
je 0x1400ca106
mov esi, 0xffffff53
jmp 0x1400ca136
mov ecx, 4
jmp 0x1400ca120
mov ecx, 8
jmp 0x1400ca120
mov ecx, 7
jmp 0x1400ca120
mov ecx, 6
mov r8d, edi
mov dword [rsp + 0x20], r13d
mov rdx, rbx
call fcn.1400c93d0
mov esi, eax
test eax, eax
je 0x1400ca18d
mov rax, qword [0x1409f4530]
mov rcx, rbx
test rax, rax
je 0x1400ca149
call rax
jmp 0x1400ca14e
call fcn.14017007c
mov eax, esi
mov r14, qword [rsp + 0x98]
mov r12, qword [rsp + 0xa8]
mov r13, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.14015a1f0
add rsp, 0xb8
pop r15
pop rdi
pop rsi
pop rbp
ret
test r13d, r13d
je 0x1400ca1b7
mov ecx, edi
mov r9d, r13d
nop word [rax + rax]
lea r8d, [rcx + 1]
mov eax, ecx
movzx ecx, byte [rax + rbx]
xor byte [r8 + rbp], cl
mov ecx, r8d
sub r9, 1
jne 0x1400ca1a0
mov rax, qword [0x1409f4530]
mov rcx, rbx
test rax, rax
je 0x1400ca1ca
call rax
jmp 0x1400ca1cf
call fcn.14017007c
lea ebx, [rdi*2 + 1]
cmp ebx, r15d
jae 0x1400ca1ef
mov edx, ebx
add rdx, rbp
cmp byte [rdx], r14b
jne 0x1400ca1ef
inc ebx
inc rdx
cmp ebx, r15d
jb 0x1400ca1e0
mov ecx, dword [rsp + 0x30]
lea r9, [rsp + 0x40]
xor r8d, r8d
mov dword [rsp + 0x20], edi
xor edx, edx
call fcn.1400bfb80
test eax, eax
jne 0x1400ca150
test edi, edi
jle 0x1400ca241
lea rcx, [rsp + 0x40]
mov r9, rdi
sub r9, rcx
mov rdx, r14
add r9, rbp
lea rax, [rsp + 0x40]
add rax, rdx
inc rdx
movzx ecx, byte [rax + r9 + 1]
movzx eax, byte [rax]
xor ecx, eax
or r14d, ecx
cmp rdx, rdi
jl 0x1400ca223
movzx ecx, byte [rbp]
movzx edx, byte [rbx + rbp]
xor edx, 1
add edx, r14d
add edx, ecx
lea eax, [rdx - 1]
not edx
shr eax, 0x1f
shr edx, 0x1f
neg al
neg dl
movsx ecx, al
movsx eax, dl
lea edx, [rbx + 1]
and ecx, eax
mov rax, qword [rsp + 0x38]
and edx, ecx
not ecx
and ecx, r15d
or edx, ecx
mov ecx, edx
add rcx, rbp
sub r15d, edx
mov qword [rax], rcx
mov eax, r15d
jmp 0x1400ca150
mov eax, 0xffffff53
jmp 0x1400ca170