Function at 0x1400779c0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push r12
push r13
push r15
sub rsp, 0x2c8
mov rax, qword [0x1400bf040]
xor rax, rsp
mov qword [rsp + 0x290], rax
mov r15, rcx
mov dword [rsp + 0x34], r9d
mov ecx, r9d
mov qword [rsp + 0x38], r8
mov r13d, edx
call fcn.14006e080
mov ebx, eax
test eax, eax
js 0x140077d2c
lea r12d, [rbx + rbx]
lea eax, [r12 + 2]
cmp r13d, eax
jb 0x140077d2c
mov qword [rsp + 0x2b0], rdi
lea rcx, [rsp + 0x80]
mov r8d, r13d
mov qword [rsp + 0x2a8], r14
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov r14d, dword [rsp + 0x310]
lea edx, [rbx + 1]
mov edi, r13d
add rdx, r15
sub edi, ebx
dec r14d
dec edi
cmp r14d, 0x19
ja case.0x140077a77.4
lea r8, [0x140000000]
movsxd rax, r14d
movzx eax, byte [r8 + rax + 0x77d50]
mov ecx, dword [r8 + rax*4 + 0x77d34]
add rcx, r8
jmp rcx
mov ecx, 4
jmp 0x140077aa1
mov ecx, 6
jmp 0x140077aa1
mov ecx, 7
jmp 0x140077aa1
mov ecx, 8
jmp 0x140077aa1
mov ecx, reloc.WS2_32.dll_recv
jmp 0x140077aa1
mov ecx, reloc.WS2_32.dll_recvfrom
lea r9, [rsp + 0x80]
mov dword [rsp + 0x20], ebx
mov r8d, edi
call fcn.140077080
mov ecx, eax
test eax, eax
jne 0x140077d28
mov qword [rsp + 0x2c0], rbp
lea rdx, [r15 + 1]
mov r8d, ebx
mov qword [rsp + 0x2b8], rsi
lea rcx, [rsp + 0x80]
call fcn.140073a30
lea r8, [0x140000000]
movsxd rax, r14d
lea rbp, [rsp + 0x80]
mov rsi, rbx
add rbp, rbx
movzx eax, byte [r8 + rax + 0x77d88]
mov edx, dword [r8 + rax*4 + 0x77d6c]
add rdx, r8
jmp rdx
mov ecx, 4
jmp 0x140077b39
mov ecx, 6
jmp 0x140077b39
mov ecx, 7
jmp 0x140077b39
mov ecx, 8
jmp 0x140077b39
mov ecx, reloc.WS2_32.dll_recv
jmp 0x140077b39
mov ecx, reloc.WS2_32.dll_recvfrom
mov r9, rbp
mov dword [rsp + 0x20], edi
mov r8d, ebx
lea rdx, [rsp + 0x80]
call fcn.140077080
mov ecx, eax
test eax, eax
jne 0x140077d07
lea rcx, [r15 + 1]
mov r8d, edi
add rcx, rbx
mov rdx, rbp
call fcn.140073a30
lea rcx, [rsp + 0x80]
mov eax, r13d
test r13d, r13d
je 0x140077b8c
nop dword [rax]
mov byte [rcx], 0
lea rcx, [rcx + 1]
add eax, 0xffffffff
jne 0x140077b80
xor edi, edi
lea r14d, [r12 + 1]
lea r12d, [r13 - 1]
mov r8d, 1
mov r10d, edi
mov r11d, edi
mov edx, r8d
cmp r14d, r12d
jae 0x140077c24
mov eax, r12d
mov r9d, r14d
sub eax, r14d
cmp eax, 2
jb 0x140077c0a
mov eax, r12d
sub eax, r14d
sub eax, 2
shr eax, 1
inc eax
mov ebp, eax
lea eax, [r14 + rax*2]
mov dword [rsp + 0x30], eax
movzx ecx, byte [r15 + r9]
mov eax, r8d
neg ecx
shr ecx, 0x1f
sub eax, ecx
movzx ecx, byte [r15 + r9 + 1]
and edx, eax
neg ecx
shr ecx, 0x1f
add r10d, edx
mov eax, r8d
add r9, 2
sub eax, ecx
and edx, eax
add r11d, edx
sub rbp, 1
jne 0x140077bd0
cmp dword [rsp + 0x30], r12d
jae 0x140077c1d
movzx eax, byte [r15 + r9]
neg eax
shr eax, 0x1f
sub r8d, eax
and r8d, edx
add r14d, r8d
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.14006e1c0
test eax, eax
jne 0x140077cc3
test ebx, ebx
jle 0x140077c77
lea rax, [rsp + 0x40]
mov r8, r15
sub r8, rax
lea rdx, [rsp + 0x40]
add r8, rbx
nop word [rax + rax]
movzx ecx, byte [r8 + rdx + 1]
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
xor ecx, eax
or edi, ecx
sub rsi, 1
jne 0x140077c60
movzx edx, byte [r14 + r15]
movzx ecx, byte [r15]
xor edx, 1
add edx, edi
add edx, ecx
lea ecx, [r14 + 1]
lea eax, [rdx - 1]
not edx
shr eax, 0x1f
neg al
shr edx, 0x1f
movsx r8d, al
neg dl
movsx eax, dl
mov rdx, qword [rsp + 0x38]
and r8d, eax
and ecx, r8d
not r8d
and r8d, r13d
or ecx, r8d
mov eax, ecx
add rax, r15
sub r13d, ecx
mov qword [rdx], rax
mov eax, r13d
mov rsi, qword [rsp + 0x2b8]
mov rbp, qword [rsp + 0x2c0]
mov rdi, qword [rsp + 0x2b0]
mov r14, qword [rsp + 0x2a8]
mov rcx, qword [rsp + 0x290]
xor rcx, rsp
call fcn.14009f800
add rsp, 0x2c8
pop r15
pop r13
pop r12
pop rbx
ret
mov ecx, 0xffffff53
lea rax, [rsp + 0x80]
test ebx, ebx
je 0x140077d1f
mov byte [rax], 0
lea rax, [rax + 1]
add ebx, 0xffffffff
jne 0x140077d13
mov eax, ecx
jmp 0x140077cc3
mov ecx, 0xffffff53
mov eax, ecx
jmp 0x140077cd3
mov eax, 0xffffff53
jmp 0x140077ce3