Function at 0x14007b930
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
cmp r8d, 0xa
mov ebx, r8d
mov r8d, r8d
setbe al
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x48], 4
mov byte [rcx + 0x11], al
lea rcx, [rsp + 0x20]
call fcn.14001e9d0
mov r8d, reloc.WS2_32.dll_recv
lea rcx, [rsp + rbx + 0x20]
mov qword [rsp + 0x68], r8
xor edx, edx
sub r8, rbx
call fcn.14001ed20
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x50]
call fcn.14007b790
xor r8d, r8d
shr rax, 2
test rax, rax
je 0x14007b9d8
nop dword [rax]
mov ecx, dword [rsp + r8*4 + 0x20]
inc r8
mov edx, ecx
ror edx, 8
and edx, 0xff00ff00
rol ecx, 8
and ecx, 0xff00ff
or edx, ecx
mov dword [rsp + r8*4 + 0x1c], edx
cmp r8, rax
jb 0x14007b9b0
mov qword [rsp + 0x40], 8
mov qword [rsp + 0x48], 2
lea r12, [0x1400f8ab0]
nop word [rax + rax]
mov r9d, dword [rsp + 0x2c]
mov r8d, dword [rsp + 0x28]
mov eax, r8d
shr eax, 0x18
movzx edx, al
mov eax, r9d
mov edx, dword [r12 + rdx*4 + 0x1800]
shr eax, 0x18
movzx ecx, al
mov eax, r9d
xor edx, dword [r12 + rcx*4 + 0x1800]
shr eax, 0x10
movzx ecx, al
mov eax, r9d
xor edx, dword [r12 + rcx*4 + 0x1000]
shr eax, 8
movzx ecx, al
movzx eax, r9b
xor edx, dword [r12 + rcx*4 + 0x1c00]
xor edx, dword [r12 + rax*4 + 0x1400]
xor edx, dword [rsp + 0x20]
mov eax, edx
mov dword [rsp + 0xd0], edx
mov dword [rsp + 0x30], edx
shr eax, 0x18
movzx r13d, al
mov eax, edx
shr eax, 0x10
movzx r10d, al
mov eax, edx
movzx edx, dl
shr eax, 8
mov qword [rsp + 0x58], r10
movzx r14d, al
mov eax, r8d
shr eax, 8
movzx ecx, al
mov r15d, dword [r12 + rcx*4 + 0x1c00]
xor r15d, dword [r12 + rdx*4 + 0x1c00]
xor r15d, dword [r12 + r14*4 + 0x1400]
xor r15d, dword [r12 + r13*4 + 0x1000]
xor r15d, r8d
shr r8d, 0x10
xor r15d, dword [r12 + r10*4 + 0x1800]
mov eax, r15d
movzx r11d, r15b
mov dword [rsp + 0x34], r15d
shr eax, 0x18
movzx ebp, al
mov eax, r15d
shr eax, 0x10
movzx edi, al
mov eax, r15d
shr eax, 8
movzx esi, al
movzx eax, r8b
mov ebx, dword [r12 + rax*4 + 0x1000]
xor ebx, dword [r12 + r11*4 + 0x1000]
xor ebx, dword [r12 + rsi*4 + 0x1400]
xor ebx, dword [r12 + rbp*4 + 0x1c00]
xor ebx, dword [r12 + rdi*4 + 0x1800]
xor ebx, r9d
mov eax, ebx
movzx edx, bl
mov dword [rsp + 0x38], ebx
shr eax, 0x18
movzx ecx, al
mov eax, ebx
shr eax, 0x10
movzx r10d, al
mov eax, ebx
mov r8d, dword [r12 + r10*4 + 0x1400]
shr eax, 8
movzx r9d, al
movzx eax, byte [rsp + 0x28]
mov r12d, dword [r12 + rax*4 + 0x1400]
lea rax, [0x1400f8ab0]
xor r12d, dword [rax + rdx*4 + 0x1800]
xor r12d, dword [rax + rcx*4 + 0x1c00]
xor r12d, dword [rax + r9*4 + 0x1000]
xor r12d, r8d
mov ecx, dword [rax + rcx*4 + 0x1000]
xor r12d, dword [rsp + 0x24]
xor ecx, dword [rax + r11*4 + 0x1800]
mov dword [rsp + 0x3c], r12d
xor ecx, dword [rax + r14*4 + 0x1000]
xor ecx, dword [rax + rsi*4 + 0x1c00]
mov rax, qword [rsp + 0xc0]
mov rax, qword [rax + 0xa8]
xor ecx, r8d
mov r8, qword [rsp + 0x40]
mov dword [r8 + rax - 8], ecx
lea rax, [0x1400f8ab0]
mov ecx, dword [rax + rdx*4 + 0x1400]
lea rdx, [0x1400f8ab0]
xor ecx, dword [rax + rsi*4 + 0x1400]
xor ecx, dword [rax + rbp*4 + 0x1c00]
xor ecx, dword [rax + rdi*4 + 0x1800]
xor ecx, dword [rax + r9*4 + 0x1000]
mov r9, qword [rsp + 0xc0]
mov rax, qword [r9 + 0xa8]
mov dword [r8 + rax - 4], ecx
mov eax, r12d
shr eax, 0x18
movzx r8d, al
mov eax, r12d
shr eax, 0x10
movzx ecx, al
movzx eax, byte [rsp + 0x30]
mov edx, dword [rdx + rcx*4 + 0x1400]
lea rcx, [0x1400f8ab0]
xor edx, dword [rcx + r8*4 + 0x1000]
xor edx, dword [rcx + r10*4 + 0x1800]
mov r10, qword [rsp + 0x40]
xor edx, dword [rcx + rax*4 + 0x1800]
mov rax, qword [r9 + 0xa8]
xor edx, dword [rcx + r14*4 + 0x1c00]
mov dword [r10 + rax], edx
mov eax, r12d
lea rdx, [0x1400f8ab0]
shr eax, 8
movzx ecx, al
movzx eax, r12b
mov edx, dword [rdx + rcx*4 + 0x1000]
lea rcx, [0x1400f8ab0]
xor edx, dword [rcx + rax*4 + 0x1400]
mov rax, qword [rsp + 0x58]
xor edx, dword [rcx + r8*4 + 0x1c00]
xor edx, dword [rcx + r13*4 + 0x1c00]
xor edx, dword [rcx + rax*4 + 0x1800]
mov rax, qword [r9 + 0xa8]
mov dword [r10 + rax + 4], edx
mov edx, dword [rcx + r11*4 + 0x1400]
xor edx, dword [rcx + rdi*4 + 0x1000]
xor edx, dword [rcx + rbp*4 + 0x1800]
xor edx, dword [rcx + r13*4 + 0x1800]
xor edx, dword [rcx + rsi*4 + 0x1c00]
xor edx, ebx
lea rbx, [0x1400f8ab0]
mov eax, edx
movzx r10d, dl
mov dword [rsp + 0x20], edx
shr eax, 8
movzx ecx, al
mov eax, edx
shr edx, 0x10
mov r11d, dword [rbx + rcx*4 + 0x1400]
shr eax, 0x18
movzx ecx, al
movzx eax, dl
mov r8d, dword [rbx + rcx*4 + 0x1000]
xor r8d, dword [rbx + rax*4 + 0x1800]
xor r8d, dword [rbx + r10*4 + 0x1c00]
xor r8d, r11d
xor r8d, dword [rsp + 0xd0]
xor r8d, dword [rbx + r14*4 + 0x1c00]
mov eax, r8d
mov dword [rsp + 0x24], r8d
shr eax, 0x18
movzx edx, al
mov eax, r8d
shr eax, 0x10
mov r9d, dword [rbx + rdx*4 + 0x1c00]
movzx ecx, al
shr r8d, 8
xor r9d, dword [rbx + rcx*4 + 0x1800]
movzx eax, r8b
xor r9d, dword [rbx + rax*4 + 0x1400]
movzx eax, byte [rsp + 0x24]
xor r9d, dword [rbx + rax*4 + 0x1000]
mov rax, qword [rsp + 0x58]
xor r9d, dword [rbx + rax*4 + 0x1000]
xor r9d, r15d
mov dword [rsp + 0x28], r9d
mov eax, r9d
shr eax, 0x18
movzx r8d, al
mov eax, r9d
shr r9d, 8
shr eax, 0x10
movzx ecx, al
movzx eax, r9b
mov edx, dword [rbx + rcx*4 + 0x1400]
xor edx, dword [rbx + rax*4 + 0x1000]
movzx eax, byte [rsp + 0x28]
xor edx, dword [rbx + rax*4 + 0x1800]
movzx eax, byte [rsp + 0x30]
xor edx, dword [rbx + rax*4 + 0x1400]
xor edx, dword [rbx + r8*4 + 0x1c00]
xor edx, r12d
mov dword [rsp + 0x2c], edx
mov eax, edx
shr edx, 0x10
shr eax, 0x18
movzx ecx, al
movzx eax, dl
mov edx, dword [rbx + rcx*4 + 0x1800]
xor edx, dword [rbx + rax*4 + 0x1c00]
xor edx, dword [rbx + r10*4 + 0x1000]
mov r10, qword [rsp + 0xc0]
xor edx, dword [rbx + r8*4 + 0x1000]
mov rax, qword [r10 + 0xa8]
xor edx, r11d
mov r11, qword [rsp + 0x40]
mov dword [r11 + rax + 8], edx
mov ecx, dword [rsp + 0x2c]
mov eax, ecx
shr ecx, 8
shr eax, 0x10
movzx edx, al
movzx eax, cl
mov r8d, dword [rbx + rdx*4 + 0x1400]
mov edx, dword [rsp + 0x20]
xor r8d, dword [rbx + rax*4 + 0x1800]
mov eax, edx
shr edx, 0x10
shr eax, 0x18
movzx ecx, al
movzx eax, dl
xor r8d, dword [rbx + rcx*4 + 0x1400]
xor r8d, dword [rbx + rax*4 + 0x1000]
movzx eax, byte [rsp + 0x2c]
xor r8d, dword [rbx + rax*4 + 0x1c00]
mov rax, qword [r10 + 0xa8]
mov dword [r11 + rax + 0xc], r8d
mov eax, dword [rsp + 0x24]
mov r8d, dword [rsp + 0x28]
shr eax, 8
movzx edx, al
mov eax, r8d
shr r8d, 0x10
mov r9d, dword [rbx + rdx*4 + 0x1400]
shr eax, 0x18
movzx ecx, al
movzx eax, r8b
xor r9d, dword [rbx + rcx*4 + 0x1800]
xor r9d, dword [rbx + rax*4 + 0x1c00]
movzx eax, byte [rsp + 0x24]
xor r9d, dword [rbx + rax*4 + 0x1000]
movzx eax, byte [rsp + 0x20]
xor r9d, dword [rbx + rax*4 + 0x1800]
mov rax, qword [r10 + 0xa8]
mov dword [r11 + rax + 0x10], r9d
mov ecx, dword [rsp + 0x24]
mov eax, ecx
shr ecx, 0x10
shr eax, 0x18
movzx edx, al
movzx eax, cl
mov r8d, dword [rbx + rdx*4 + 0x1400]
xor r8d, dword [rbx + rax*4 + 0x1000]
mov eax, dword [rsp + 0x28]
shr eax, 8
movzx ecx, al
movzx eax, byte [rsp + 0x24]
xor r8d, dword [rbx + rcx*4 + 0x1800]
xor r8d, dword [rbx + rax*4 + 0x1c00]
movzx eax, byte [rsp + 0x28]
xor r8d, dword [rbx + rax*4 + 0x1c00]
mov rax, qword [r10 + 0xa8]
mov dword [r11 + rax + 0x14], r8d
mov r8d, dword [rsp + 0x28]
mov r9d, dword [rsp + 0x2c]
mov eax, r8d
shr eax, 0x18
movzx edx, al
mov eax, r9d
mov edx, dword [rbx + rdx*4 + 0x1800]
shr eax, 0x18
movzx ecx, al
mov eax, r9d
xor edx, dword [rbx + rcx*4 + 0x1800]
shr eax, 0x10
movzx ecx, al
mov eax, r9d
xor edx, dword [rbx + rcx*4 + 0x1000]
shr eax, 8
movzx ecx, al
movzx eax, r9b
xor edx, dword [rbx + rcx*4 + 0x1c00]
xor edx, dword [rbx + rax*4 + 0x1400]
xor edx, dword [rsp + 0x20]
mov eax, edx
mov dword [rsp + 0x60], edx
mov dword [rsp + 0x30], edx
shr eax, 0x18
movzx r15d, al
mov eax, edx
shr eax, 0x10
movzx r10d, al
mov eax, edx
movzx edx, dl
shr eax, 8
mov qword [rsp + 0x50], r10
movzx eax, al
mov qword [rsp + 0x70], rax
mov edi, dword [rbx + rax*4 + 0x1400]
mov eax, r8d
shr eax, 8
movzx ecx, al
mov ecx, dword [rbx + rcx*4 + 0x1c00]
xor ecx, dword [rbx + rdx*4 + 0x1c00]
xor ecx, dword [rbx + r10*4 + 0x1800]
xor ecx, dword [rbx + r15*4 + 0x1000]
xor ecx, edi
xor ecx, r8d
shr r8d, 0x10
mov eax, ecx
mov dword [rsp + 0x58], ecx
mov dword [rsp + 0x34], ecx
shr eax, 0x18
movzx ebp, cl
movzx r12d, al
mov eax, ecx
shr eax, 0x10
movzx r14d, al
mov eax, ecx
shr eax, 8
movzx r13d, al
movzx eax, r8b
mov esi, dword [rbx + rax*4 + 0x1000]
xor esi, dword [rbx + r14*4 + 0x1800]
xor esi, dword [rbx + r12*4 + 0x1c00]
xor esi, dword [rbx + r13*4 + 0x1400]
lea rdx, [0x1400f8ab0]
xor esi, r9d
xor esi, dword [rbx + rbp*4 + 0x1000]
mov eax, esi
movzx r11d, sil
mov dword [rsp + 0x38], esi
shr eax, 0x18
movzx r10d, al
mov eax, esi
shr eax, 0x10
movzx r9d, al
mov eax, esi
shr eax, 8
movzx ebx, al
movzx eax, byte [rsp + 0x28]
mov ecx, dword [rdx + rax*4 + 0x1400]
xor ecx, dword [rdx + r11*4 + 0x1800]
xor ecx, dword [rdx + rbx*4 + 0x1000]
xor ecx, dword [rdx + r9*4 + 0x1400]
xor ecx, dword [rdx + r10*4 + 0x1c00]
xor ecx, dword [rsp + 0x24]
mov eax, ecx
mov dword [rsp + 0xd0], ecx
mov dword [rsp + 0x3c], ecx
shr eax, 0x18
movzx r8d, al
mov eax, ecx
shr eax, 0x10
movzx ecx, al
movzx eax, byte [rsp + 0x30]
mov edx, dword [rdx + rcx*4 + 0x1c00]
lea rcx, [0x1400f8ab0]
xor edx, dword [rcx + r8*4 + 0x1800]
xor edx, dword [rcx + r9*4 + 0x1000]
xor edx, dword [rcx + rax*4 + 0x1000]
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0xc0]
mov rax, qword [rax + 0xa8]
xor edx, edi
mov edi, dword [rsp + 0xd0]
mov dword [rcx + rax + 0x18], edx
mov eax, edi
lea rdx, [0x1400f8ab0]
shr eax, 8
movzx ecx, al
movzx eax, byte [rsp + 0x3c]
mov edx, dword [rdx + rcx*4 + 0x1800]
lea rcx, [0x1400f8ab0]
xor edx, dword [rcx + rax*4 + 0x1c00]
mov rax, qword [rsp + 0x50]
xor edx, dword [rcx + r8*4 + 0x1400]
mov r8, qword [rsp + 0xc0]
xor edx, dword [rcx + r15*4 + 0x1400]
xor edx, dword [rcx + rax*4 + 0x1000]
mov rax, qword [r8 + 0xa8]
mov rcx, qword [rsp + 0x40]
mov dword [rcx + rax + 0x1c], edx
mov rax, qword [r8 + 0xa8]
lea rdx, [0x1400f8ab0]
mov ecx, dword [rdx + r9*4 + 0x1c00]
mov rdx, qword [rsp + 0x40]
lea r9, [0x1400f8ab0]
xor ecx, dword [r9 + r10*4 + 0x1800]
mov r10, qword [rsp + 0x70]
xor ecx, dword [r9 + r10*4 + 0x1800]
xor ecx, dword [r9 + r13*4 + 0x1400]
xor ecx, dword [r9 + rbp*4 + 0x1000]
mov dword [rdx + rax + 0x20], ecx
mov rax, qword [r8 + 0xa8]
mov ecx, dword [r9 + r11*4 + 0x1c00]
xor ecx, dword [r9 + rbx*4 + 0x1800]
xor ecx, dword [r9 + r12*4 + 0x1400]
xor ecx, dword [r9 + r14*4 + 0x1000]
xor ecx, dword [r9 + r13*4 + 0x1c00]
mov dword [rdx + rax + 0x24], ecx
mov r8d, dword [r9 + rbp*4 + 0x1400]
xor r8d, dword [r9 + r12*4 + 0x1800]
lea r12, [0x1400f8ab0]
xor r8d, dword [r12 + r15*4 + 0x1800]
xor r8d, dword [r12 + r14*4 + 0x1000]
xor r8d, dword [r12 + r13*4 + 0x1c00]
xor r8d, esi
movzx ebx, r8b
mov eax, r8d
mov dword [rsp + 0x20], r8d
shr eax, 0x18
movzx edx, al
mov eax, r8d
shr r8d, 8
mov r9d, dword [r12 + rdx*4 + 0x1000]
shr eax, 0x10
movzx ecx, al
movzx eax, r8b
xor r9d, dword [r12 + rcx*4 + 0x1800]
xor r9d, dword [r12 + rax*4 + 0x1400]
xor r9d, dword [r12 + rbx*4 + 0x1c00]
xor r9d, dword [r12 + r10*4 + 0x1c00]
xor r9d, dword [rsp + 0x60]
mov dword [rsp + 0x24], r9d
mov eax, r9d
movzx r10d, r9b
shr eax, 8
movzx r11d, al
mov eax, r9d
shr r9d, 0x10
shr eax, 0x18
movzx ecx, al
movzx eax, r9b
mov edx, dword [r12 + rcx*4 + 0x1c00]
xor edx, dword [r12 + rax*4 + 0x1800]
mov rax, qword [rsp + 0x50]
xor edx, dword [r12 + r10*4 + 0x1000]
xor edx, dword [r12 + r11*4 + 0x1400]
xor edx, dword [r12 + rax*4 + 0x1000]
xor edx, dword [rsp + 0x58]
mov dword [rsp + 0x28], edx
mov eax, edx
shr eax, 0x18
movzx r9d, al
mov eax, edx
shr edx, 8
shr eax, 0x10
movzx ecx, al
movzx eax, byte [rsp + 0x28]
mov r8d, dword [r12 + rcx*4 + 0x1400]
movzx ecx, dl
mov edx, dword [r12 + rcx*4 + 0x1000]
mov ecx, dword [r12 + r10*4 + 0x1800]
xor edx, dword [r12 + rax*4 + 0x1800]
xor ecx, dword [r12 + r11*4 + 0x1c00]
movzx eax, byte [rsp + 0x30]
xor edx, dword [r12 + rax*4 + 0x1400]
xor ecx, dword [r12 + rbx*4 + 0x1000]
mov r11, qword [rsp + 0xc0]
xor ecx, dword [r12 + r9*4 + 0x1000]
xor edx, dword [r12 + r9*4 + 0x1c00]
mov rax, qword [r11 + 0xa8]
mov rbx, qword [rsp + 0x40]
xor ecx, r8d
xor edx, r8d
xor edx, edi
mov dword [rsp + 0x2c], edx
mov dword [rbx + rax + 0x28], ecx
mov ecx, dword [rsp + 0x24]
mov eax, ecx
shr ecx, 0x10
shr eax, 0x18
movzx edx, al
movzx eax, cl
mov r8d, dword [r12 + rdx*4 + 0x1c00]
xor r8d, dword [r12 + rax*4 + 0x1800]
mov eax, dword [rsp + 0x28]
shr eax, 8
movzx ecx, al
movzx eax, byte [rsp + 0x24]
xor r8d, dword [r12 + rcx*4 + 0x1000]
xor r8d, dword [r12 + rax*4 + 0x1400]
movzx eax, byte [rsp + 0x28]
xor r8d, dword [r12 + rax*4 + 0x1400]
mov rax, qword [r11 + 0xa8]
mov dword [rbx + rax + 0x2c], r8d
mov eax, dword [rsp + 0x28]
mov r8d, dword [rsp + 0x2c]
shr eax, 0x18
add rbx, 0x40
movzx edx, al
mov eax, r8d
shr r8d, 0x10
mov r9d, dword [r12 + rdx*4 + 0x1800]
shr eax, 0x18
mov qword [rsp + 0x40], rbx
movzx ecx, al
movzx eax, r8b
xor r9d, dword [r12 + rcx*4 + 0x1000]
xor r9d, dword [r12 + rax*4 + 0x1400]
mov eax, dword [rsp + 0x20]
shr eax, 8
movzx ecx, al
movzx eax, byte [rsp + 0x20]
xor r9d, dword [r12 + rcx*4 + 0x1c00]
xor r9d, dword [r12 + rax*4 + 0x1800]
mov rax, qword [r11 + 0xa8]
mov dword [rbx + rax - 0x10], r9d
mov r8d, dword [rsp + 0x2c]
mov r9d, dword [rsp + 0x20]
mov eax, r8d
shr r8d, 8
shr eax, 0x10
movzx edx, al
mov eax, r9d
shr r9d, 0x10
mov r10d, dword [r12 + rdx*4 + 0x1c00]
shr eax, 0x18
movzx ecx, al
movzx eax, r8b
xor r10d, dword [r12 + rcx*4 + 0x1c00]
xor r10d, dword [r12 + rax*4 + 0x1000]
movzx eax, r9b
xor r10d, dword [r12 + rax*4 + 0x1800]
movzx eax, byte [rsp + 0x2c]
xor r10d, dword [r12 + rax*4 + 0x1400]
sub qword [rsp + 0x48], 1
mov rax, qword [r11 + 0xa8]
mov dword [rbx + rax - 0xc], r10d
jne 0x14007ba00
mov ecx, 0x40
nop word [rax + rax]
mov rax, qword [r11 + 0xa8]
add rcx, 4
and dword [rax + rcx - 4], 0x1f
sub qword [rsp + 0x68], 1
jne 0x14007c480
mov rbx, qword [rsp + 0xc8]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret