Function at 0x18007a670
Capabilities:
Encode data using xor

Disassembly:
push rsi
push r15
sub rsp, 0xd8
mov rax, qword [0x1800f3188]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x118]
mov rsi, rcx
mov dword [rsp + 0x34], r9d
mov qword [rsp + 0x40], r8
mov r15d, edx
mov qword [rsp + 0x38], rax
test rax, rax
jne 0x18007a6c2
cmp dword [rsp + 0x120], eax
jbe 0x18007a6c2
mov eax, 0xffffff7c
jmp 0x18007a966
mov qword [rsp + 0xc0], rdi
mov ecx, r9d
mov qword [rsp + 0xa8], r14
call fcn.180051a70
movsxd rdi, eax
test eax, eax
js 0x18007aa76
lea ecx, [rdi*2 + 2]
cmp r15d, ecx
jb 0x18007aa76
mov qword [rsp + 0xd0], rbx
mov rcx, r15
mov qword [rsp + 0xc8], rbp
call fcn.18004b0c0
mov rbx, rax
test rax, rax
jne 0x18007a71d
lea eax, [rbx - 0x7d]
jmp 0x18007a946
mov r8, r15
mov qword [rsp + 0xb8], r12
xor edx, edx
mov rcx, rbx
call fcn.1800a3140
mov r12d, dword [rsp + 0x110]
lea eax, [rdi + 1]
mov r8d, r15d
movsxd rdx, eax
sub r8d, edi
add rdx, rsi
dec r8d
mov ecx, r12d
mov dword [rsp + 0x30], r8d
sub ecx, 1
je 0x18007a793
sub ecx, 1
je 0x18007a78c
sub ecx, 1
je 0x18007a785
cmp ecx, 0x17
je 0x18007a77e
mov rcx, rbx
mov r14d, 0xffffff53
call fcn.18004b0a0
mov eax, r14d
jmp 0x18007a93e
mov ecx, 4
jmp 0x18007a798
mov ecx, 8
jmp 0x18007a798
mov ecx, 7
jmp 0x18007a798
mov ecx, 6
mov r10, qword [rsp + 0x128]
mov eax, edi
mov qword [rsp + 0x28], r10
mov r9, rbx
mov dword [rsp + 0x20], eax
call fcn.180079580
mov r14d, eax
test eax, eax
je 0x18007a7ca
mov rcx, rbx
call fcn.18004b0a0
mov eax, r14d
jmp 0x18007a93e
xor ebp, ebp
mov qword [rsp + 0xb0], r13
mov r8d, ebp
test edi, edi
je 0x18007a8c4
cmp edi, 0x40
jb 0x18007a89c
lea edx, [rdi - 1]
mov eax, edi
add rdx, rbx
lea rcx, [rsi + 1]
add rax, rsi
cmp rbx, rax
ja 0x18007a805
cmp rdx, rcx
jae 0x18007a89c
mov eax, edi
mov r10d, edi
and eax, 0x3f
sub r10d, eax
mov r9d, reloc.WS2_32.dll_recvfrom
nop word [rax + rax]
mov edx, r8d
lea eax, [r9 - 0x10]
movdqu xmm1, xmmword [rax + rsi]
mov eax, r9d
lea ecx, [r9 - 1]
add r8d, 0x40
movdqu xmm0, xmmword [rdx + rbx]
pxor xmm1, xmm0
movdqu xmmword [rdx + rbx], xmm1
lea edx, [r9 + 0xf]
movdqu xmm0, xmmword [rcx + rbx]
movdqu xmm1, xmmword [rax + rsi]
lea eax, [r9 + 0x10]
pxor xmm1, xmm0
movdqu xmmword [rcx + rbx], xmm1
movdqu xmm0, xmmword [rdx + rbx]
movdqu xmm1, xmmword [rax + rsi]
lea eax, [r9 + 0x20]
pxor xmm1, xmm0
movdqu xmmword [rdx + rbx], xmm1
lea edx, [r9 + 0x1f]
add r9d, 0x40
movdqu xmm0, xmmword [rdx + rbx]
movdqu xmm1, xmmword [rax + rsi]
pxor xmm1, xmm0
movdqu xmmword [rdx + rbx], xmm1
cmp r8d, r10d
jb 0x18007a820
cmp r8d, edi
jae 0x18007a8c4
mov ecx, r8d
lea edx, [r8 + 1]
add rcx, rbx
add rdx, rsi
mov eax, edi
sub eax, r8d
mov r8d, eax
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub r8, 1
jne 0x18007a8b1
lea r9, [rbx + rdi]
sub r12d, 1
je 0x18007a8fd
sub r12d, 1
je 0x18007a8f6
sub r12d, 1
je 0x18007a8ef
cmp r12d, 0x17
je 0x18007a8e8
mov r14d, 0xffffff53
jmp 0x18007a92b
mov ecx, 4
jmp 0x18007a902
mov ecx, 8
jmp 0x18007a902
mov ecx, 7
jmp 0x18007a902
mov ecx, 6
mov rax, qword [rsp + 0x128]
mov r8d, edi
mov r12d, dword [rsp + 0x30]
mov rdx, rbx
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r12d
call fcn.180079580
mov r14d, eax
test eax, eax
je 0x18007a981
mov rcx, rbx
call fcn.18004b0a0
mov eax, r14d
mov r13, qword [rsp + 0xb0]
mov r12, qword [rsp + 0xb8]
mov rbp, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xd0]
mov rdi, qword [rsp + 0xc0]
mov r14, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.1800a1bf0
add rsp, 0xd8
pop r15
pop rsi
ret
test r12d, r12d
je 0x18007a9a7
mov ecx, edi
mov r9, r12
nop dword [rax + rax]
lea r8d, [rcx + 1]
mov eax, ecx
movzx ecx, byte [rax + rbx]
xor byte [r8 + rsi], cl
mov ecx, r8d
sub r9, 1
jne 0x18007a990
mov rcx, rbx
call fcn.18004b0a0
lea ebx, [rdi*2 + 1]
cmp ebx, r15d
jae 0x18007a9d0
mov r9d, ebx
add r9, rsi
cmp byte [r9], bpl
jne 0x18007a9d0
inc ebx
inc r9
cmp ebx, r15d
jb 0x18007a9c1
mov r8d, dword [rsp + 0x120]
lea r9, [rsp + 0x50]
mov rdx, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x34]
mov dword [rsp + 0x20], edi
call fcn.1800514c0
test eax, eax
jne 0x18007a936
test edi, edi
jle 0x18007aa2d
lea rcx, [rsp + 0x50]
mov r8, rdi
sub r8, rcx
mov rdx, rbp
add r8, rsi
nop dword [rax]
lea rax, [rsp + 0x50]
add rax, rdx
inc rdx
movzx ecx, byte [rax + r8 + 1]
movzx eax, byte [rax]
xor ecx, eax
or ebp, ecx
cmp rdx, rdi
jl 0x18007aa10
movzx ecx, byte [rsi]
movzx edx, byte [rbx + rsi]
xor edx, 1
add edx, ebp
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 + 0x40]
and edx, ecx
not ecx
and ecx, r15d
or edx, ecx
mov ecx, edx
add rcx, rsi
sub r15d, edx
mov qword [rax], rcx
mov eax, r15d
jmp 0x18007a936
mov eax, 0xffffff53
jmp 0x18007a956