Function at 0x1400a39d0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rdi
push r13
lea rbp, [rsp - 0x1c8]
sub rsp, 0x2c8
mov rax, qword [0x140121218]
xor rax, rsp
mov qword [rbp + 0x190], rax
mov rdi, rcx
mov dword [rsp + 0x34], r9d
mov ecx, r9d
mov qword [rsp + 0x38], r8
mov r13d, edx
call fcn.140099750
movsxd rbx, eax
test eax, eax
js 0x1400a3ea5
lea eax, [rbx*2 + 2]
cmp r13d, eax
jb 0x1400a3ea5
mov qword [rsp + 0x2b8], r12
lea rcx, [rsp + 0x40]
mov r8d, r13d
mov qword [rsp + 0x2b0], r14
xor edx, edx
call fcn.1400c2270
mov r12d, dword [rbp + 0x210]
lea eax, [rbx + 1]
mov r14d, r13d
movsxd rdx, eax
sub r14d, ebx
add rdx, rdi
dec r14d
dec r12d
cmp r12d, 0x19
ja case.0x1400a3a8c.4
lea r8, [0x140000000]
movsxd rax, r12d
movzx eax, byte [r8 + rax + 0xa3ec8]
mov ecx, dword [r8 + rax*4 + 0xa3eac]
add rcx, r8
jmp rcx
mov ecx, 4
jmp 0x1400a3ab6
mov ecx, 6
jmp 0x1400a3ab6
mov ecx, 7
jmp 0x1400a3ab6
mov ecx, 8
jmp 0x1400a3ab6
mov ecx, reloc.WS2_32.dll_recv
jmp 0x1400a3ab6
mov ecx, reloc.WS2_32.dll_recvfrom
lea r9, [rsp + 0x40]
mov dword [rsp + 0x20], ebx
mov r8d, r14d
call fcn.1400a2eb0
test eax, eax
jne 0x1400a3e55
mov qword [rsp + 0x2c0], rsi
xor esi, esi
mov qword [rsp + 0x2a8], r15
mov r8d, esi
test ebx, ebx
je 0x1400a3c43
cmp ebx, 8
jb 0x1400a3c0e
lea ecx, [rbx - 1]
mov eax, ebx
lea rdx, [rsp + 0x40]
add rax, rdi
add rdx, rcx
lea r9, [rsp + 0x40]
lea rcx, [rdi + 1]
cmp r9, rax
ja 0x1400a3b1c
cmp rdx, rcx
jae 0x1400a3c0e
cmp ebx, 0x40
jb 0x1400a3bd3
mov r9d, ebx
mov r11d, ebx
and r9d, 0x3f
sub r11d, r9d
mov r10d, reloc.WS2_32.dll_recvfrom
nop dword [rax + rax]
lea ecx, [r10 - 1]
mov eax, r8d
lea rdx, [rsp + 0x40]
add r8d, 0x40
add rdx, rax
lea eax, [r10 - 0x10]
movdqu xmm1, xmmword [rax + rdi]
mov eax, r10d
movdqu xmm0, xmmword [rdx]
pxor xmm1, xmm0
movdqu xmmword [rdx], xmm1
lea rdx, [rsp + 0x40]
movdqu xmm0, xmmword [rsp + rcx + 0x40]
movdqu xmm1, xmmword [rax + rdi]
lea eax, [r10 + 0x10]
pxor xmm1, xmm0
movdqu xmmword [rsp + rcx + 0x40], xmm1
lea ecx, [r10 + 0xf]
movdqu xmm0, xmmword [rdx + rcx]
movdqu xmm1, xmmword [rax + rdi]
lea eax, [r10 + 0x20]
pxor xmm1, xmm0
movdqu xmmword [rdx + rcx], xmm1
lea ecx, [r10 + 0x1f]
add r10d, 0x40
lea rdx, [rsp + 0x40]
movdqu xmm0, xmmword [rdx + rcx]
movdqu xmm1, xmmword [rax + rdi]
pxor xmm1, xmm0
movdqu xmmword [rdx + rcx], xmm1
cmp r8d, r11d
jb 0x1400a3b40
cmp r9d, 8
jb 0x1400a3c09
mov eax, ebx
mov r9d, ebx
and eax, 7
sub r9d, eax
nop
mov eax, r8d
lea rdx, [rsp + 0x40]
add rdx, rax
lea eax, [r8 + 1]
add r8d, 8
movq xmm1, qword [rax + rdi]
movq xmm0, qword [rdx]
pxor xmm1, xmm0
movq qword [rdx], xmm1
cmp r8d, r9d
jb 0x1400a3be0
cmp r8d, ebx
jae 0x1400a3c43
mov eax, r8d
lea edx, [r8 + 1]
lea rcx, [rsp + 0x40]
add rdx, rdi
add rcx, rax
mov eax, ebx
sub eax, r8d
mov r8d, eax
nop dword [rax + rax]
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub r8, 1
jne 0x1400a3c30
lea r8, [0x140000000]
movsxd rax, r12d
lea r9, [rsp + 0x40]
mov r15, rbx
add r9, rbx
mov ecx, r14d
movzx eax, byte [r8 + rax + 0xa3f00]
mov edx, dword [r8 + rax*4 + 0xa3ee4]
add rdx, r8
jmp rdx
mov dword [rsp + 0x20], ecx
mov ecx, 4
jmp 0x1400a3cb1
mov dword [rsp + 0x20], ecx
mov ecx, 6
jmp 0x1400a3cb1
mov dword [rsp + 0x20], ecx
mov ecx, 7
jmp 0x1400a3cb1
mov dword [rsp + 0x20], ecx
mov ecx, 8
jmp 0x1400a3cb1
mov dword [rsp + 0x20], ecx
mov ecx, reloc.WS2_32.dll_recv
jmp 0x1400a3cb1
mov dword [rsp + 0x20], ecx
mov ecx, reloc.WS2_32.dll_recvfrom
mov r8d, ebx
lea rdx, [rsp + 0x40]
call fcn.1400a2eb0
test eax, eax
jne 0x1400a3e86
test r14d, r14d
je 0x1400a3ce8
mov ecx, ebx
mov r9d, r14d
lea r8d, [rcx + 1]
mov eax, ecx
movzx ecx, byte [rsp + rax + 0x40]
xor byte [r8 + rdi], cl
mov ecx, r8d
sub r9, 1
jne 0x1400a3cd0
lea rcx, [rsp + 0x40]
mov eax, r13d
test r13d, r13d
je 0x1400a3d0c
nop word [rax + rax]
mov byte [rcx], sil
lea rcx, [rcx + 1]
add eax, 0xffffffff
jne 0x1400a3d00
lea r14d, [rbx*2 + 1]
mov r9d, 1
lea ecx, [r13 - 1]
mov r10d, esi
mov r11d, esi
mov edx, r9d
cmp r14d, ecx
jae 0x1400a3da6
mov eax, ecx
mov r8d, r14d
sub eax, r14d
cmp eax, 2
jb 0x1400a3d8c
mov eax, ecx
sub eax, r14d
sub eax, 2
shr eax, 1
inc eax
mov r12d, eax
lea eax, [r14 + rax*2]
mov dword [rsp + 0x30], eax
movzx ecx, byte [r8 + rdi]
mov eax, r9d
neg ecx
shr ecx, 0x1f
sub eax, ecx
movzx ecx, byte [r8 + rdi + 1]
and edx, eax
neg ecx
shr ecx, 0x1f
add r10d, edx
mov eax, r9d
add r8, 2
sub eax, ecx
and edx, eax
add r11d, edx
sub r12, r9
jne 0x1400a3d50
lea eax, [r13 - 1]
cmp dword [rsp + 0x30], eax
jae 0x1400a3d9f
movzx eax, byte [r8 + rdi]
neg eax
shr eax, 0x1f
sub r9d, eax
and r9d, edx
add r14d, r9d
lea eax, [r11 + r10]
add r14d, eax
mov ecx, dword [rsp + 0x34]
lea r9, [rbp + 0x150]
xor r8d, r8d
mov dword [rsp + 0x20], ebx
xor edx, edx
call fcn.140099890
test eax, eax
jne 0x1400a3e45
test r15, r15
jle 0x1400a3dff
lea rcx, [rbp + 0x150]
mov r8, r15
sub r8, rcx
mov rdx, rsi
add r8, rdi
nop
lea rax, [rbp + 0x150]
add rax, rdx
inc rdx
movzx ecx, byte [r8 + rax + 1]
movzx eax, byte [rax]
xor ecx, eax
or esi, ecx
cmp rdx, r15
jl 0x1400a3de0
movzx ecx, byte [rdi]
movzx edx, byte [r14 + rdi]
xor edx, 1
add edx, esi
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, [r14 + 1]
and ecx, eax
mov rax, qword [rsp + 0x38]
and edx, ecx
not ecx
and ecx, r13d
or edx, ecx
mov ecx, edx
add rcx, rdi
sub r13d, edx
mov qword [rax], rcx
mov eax, r13d
mov r15, qword [rsp + 0x2a8]
mov rsi, qword [rsp + 0x2c0]
mov r12, qword [rsp + 0x2b8]
mov r14, qword [rsp + 0x2b0]
mov rcx, qword [rbp + 0x190]
xor rcx, rsp
call fcn.1400bf510
add rsp, 0x2c8
pop r13
pop rdi
pop rbx
pop rbp
ret
mov eax, 0xffffff53
lea rcx, [rsp + 0x40]
test ebx, ebx
je 0x1400a3e45
nop
mov byte [rcx], sil
lea rcx, [rcx + 1]
add ebx, 0xffffffff
jne 0x1400a3e90
jmp 0x1400a3e45
mov eax, 0xffffff53
jmp 0x1400a3e55
mov eax, 0xffffff53
jmp 0x1400a3e65