Function at 0x1400b5400
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rdi
push r13
lea rbp, [rsp - 0x1c8]
sub rsp, 0x2c8
mov rax, qword [0x14012d240]
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.1400accf0
movsxd rbx, eax
test eax, eax
js 0x1400b58d5
lea eax, [rbx*2 + 2]
cmp r13d, eax
jb 0x1400b58d5
mov qword [rsp + 0x2b8], r12
lea rcx, [rbp - 0x80]
mov r8d, r13d
mov qword [rsp + 0x2b0], r14
xor edx, edx
call fcn.1400fcb30
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.0x1400b54bb.4
lea r8, [0x140000000]
movsxd rax, r12d
movzx eax, byte [r8 + rax + 0xb58f8]
mov ecx, dword [r8 + rax*4 + 0xb58dc]
add rcx, r8
jmp rcx
mov ecx, 4
jmp 0x1400b54e5
mov ecx, 6
jmp 0x1400b54e5
mov ecx, 7
jmp 0x1400b54e5
mov ecx, 8
jmp 0x1400b54e5
mov ecx, reloc.WS2_32.dll_recv
jmp 0x1400b54e5
mov ecx, reloc.WS2_32.dll_recvfrom
lea r9, [rbp - 0x80]
mov dword [rsp + 0x20], ebx
mov r8d, r14d
call fcn.1400b48f0
test eax, eax
jne 0x1400b5883
mov qword [rsp + 0x2c0], rsi
xor esi, esi
mov qword [rsp + 0x2a8], r15
mov r8d, esi
test ebx, ebx
je 0x1400b5673
cmp ebx, 8
jb 0x1400b563c
lea ecx, [rbx - 1]
mov eax, ebx
lea rdx, [rbp - 0x80]
add rax, rdi
add rdx, rcx
lea r9, [rbp - 0x80]
lea rcx, [rdi + 1]
cmp r9, rax
ja 0x1400b5548
cmp rdx, rcx
jae 0x1400b563c
cmp ebx, 0x40
jb 0x1400b55fc
mov r9d, ebx
mov r11d, ebx
and r9d, 0x3f
sub r11d, r9d
mov r10d, reloc.WS2_32.dll_recvfrom
nop dword [rax]
nop dword [rax + rax]
lea ecx, [r10 - 1]
mov eax, r8d
lea rdx, [rbp - 0x80]
add r8d, 0x40
add rdx, rax
lea eax, [r10 - 0x10]
movdqu xmm1, xmmword [rax + rdi]
mov eax, r10d
movdqu xmm0, xmmword [rdx]
xorps xmm1, xmm0
movdqu xmmword [rdx], xmm1
lea rdx, [rbp - 0x80]
movdqu xmm0, xmmword [rbp + rcx - 0x80]
movdqu xmm1, xmmword [rax + rdi]
lea eax, [r10 + 0x10]
xorps xmm1, xmm0
movdqu xmmword [rbp + rcx - 0x80], xmm1
lea ecx, [r10 + 0xf]
movdqu xmm0, xmmword [rdx + rcx]
movdqu xmm1, xmmword [rax + rdi]
lea eax, [r10 + 0x20]
xorps xmm1, xmm0
movdqu xmmword [rdx + rcx], xmm1
lea ecx, [r10 + 0x1f]
add r10d, 0x40
lea rdx, [rbp - 0x80]
movdqu xmm0, xmmword [rdx + rcx]
movdqu xmm1, xmmword [rax + rdi]
xorps xmm1, xmm0
movdqu xmmword [rdx + rcx], xmm1
cmp r8d, r11d
jb 0x1400b5570
cmp r9d, 8
jb 0x1400b5637
mov eax, ebx
mov r9d, ebx
and eax, 7
sub r9d, eax
nop word [rax + rax]
mov eax, r8d
lea rdx, [rbp - 0x80]
add rdx, rax
lea eax, [r8 + 1]
add r8d, 8
movq xmm1, qword [rax + rdi]
movq xmm0, qword [rdx]
xorps xmm1, xmm0
movq qword [rdx], xmm1
cmp r8d, r9d
jb 0x1400b5610
cmp r8d, ebx
jae 0x1400b5673
mov eax, r8d
lea edx, [r8 + 1]
lea rcx, [rbp - 0x80]
add rdx, rdi
add rcx, rax
mov eax, ebx
sub eax, r8d
mov r8d, eax
nop word [rax + rax]
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub r8, 1
jne 0x1400b5660
lea r8, [0x140000000]
movsxd rax, r12d
lea r9, [rbp - 0x80]
mov r15, rbx
add r9, rbx
mov ecx, r14d
movzx eax, byte [r8 + rax + 0xb5930]
mov edx, dword [r8 + rax*4 + 0xb5914]
add rdx, r8
jmp rdx
mov dword [rsp + 0x20], ecx
mov ecx, 4
jmp 0x1400b56e0
mov dword [rsp + 0x20], ecx
mov ecx, 6
jmp 0x1400b56e0
mov dword [rsp + 0x20], ecx
mov ecx, 7
jmp 0x1400b56e0
mov dword [rsp + 0x20], ecx
mov ecx, 8
jmp 0x1400b56e0
mov dword [rsp + 0x20], ecx
mov ecx, reloc.WS2_32.dll_recv
jmp 0x1400b56e0
mov dword [rsp + 0x20], ecx
mov ecx, reloc.WS2_32.dll_recvfrom
mov r8d, ebx
lea rdx, [rbp - 0x80]
call fcn.1400b48f0
test eax, eax
jne 0x1400b58b4
test r14d, r14d
je 0x1400b5718
mov ecx, ebx
mov r9d, r14d
nop
lea r8d, [rcx + 1]
mov eax, ecx
movzx ecx, byte [rbp + rax - 0x80]
xor byte [r8 + rdi], cl
mov ecx, r8d
sub r9, 1
jne 0x1400b5700
lea rcx, [rbp - 0x80]
mov eax, r13d
test r13d, r13d
je 0x1400b5730
mov byte [rcx], sil
lea rcx, [rcx + 1]
add eax, 0xffffffff
jne 0x1400b5724
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 0x1400b57d6
mov eax, ecx
mov r8d, r14d
sub eax, r14d
cmp eax, 2
jb 0x1400b57bc
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
nop dword [rax + rax]
movzx ecx, byte [rdi + r8]
mov eax, r9d
neg ecx
shr ecx, 0x1f
sub eax, ecx
movzx ecx, byte [rdi + r8 + 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 0x1400b5780
lea eax, [r13 - 1]
cmp dword [rsp + 0x30], eax
jae 0x1400b57cf
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, [rsp + 0x40]
xor r8d, r8d
mov dword [rsp + 0x20], ebx
xor edx, edx
call fcn.1400ace30
test eax, eax
jne 0x1400b5873
test r15, r15
jle 0x1400b582d
lea rax, [rsp + 0x40]
mov r8, r15
sub r8, rax
mov rdx, rsi
add r8, rdi
nop dword [rax + rax]
lea rax, [rsp + 0x40]
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 0x1400b5810
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.1400d0cb0
add rsp, 0x2c8
pop r13
pop rdi
pop rbx
pop rbp
ret
mov eax, 0xffffff53
lea rcx, [rbp - 0x80]
test ebx, ebx
je 0x1400b5873
nop dword [rax]
mov byte [rcx], sil
lea rcx, [rcx + 1]
add ebx, 0xffffffff
jne 0x1400b58c0
jmp 0x1400b5873
mov eax, 0xffffff53
jmp 0x1400b5883
mov eax, 0xffffff53
jmp 0x1400b5893