Function at 0x1800949f0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x258
mov r11d, dword [rcx]
mov ebx, dword [rcx + 4]
mov esi, dword [rcx + 0xc]
mov r12d, dword [rcx + 0x14]
mov r14d, dword [rcx + 0x1c]
mov edi, dword [rcx + 8]
mov ebp, dword [rcx + 0x10]
mov r13d, dword [rcx + 0x18]
lea r10, [rsp + 0x40]
mov dword [rsp + 0x20], r11d
mov dword [rsp + 0x2b0], r11d
mov dword [rsp + 0x30], ebx
mov dword [rsp + 0x2a8], ebx
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x14], esi
mov dword [rsp + 0x2b8], esi
mov dword [rsp + 0x2c], ebp
mov dword [rsp + 0x18], r12d
mov dword [rsp + 8], r12d
mov dword [rsp + 0x1c], r13d
mov dword [rsp + 0x24], r14d
mov dword [rsp + 4], r14d
mov r8, rdx
sub r10, rdx
mov r15d, sendto
mov ecx, dword [r8]
mov edx, ecx
mov eax, ecx
shr eax, 0x10
and edx, 0xff0000
or edx, eax
mov eax, ecx
and ecx, 0xff00
shl eax, 0x10
shr edx, 8
or eax, ecx
shl eax, 8
or edx, eax
mov dword [r8 + r10], edx
add r8, 4
sub r15, 1
jne 0x180094a78
lea r10, [rsp + 0x74]
mov r15d, 0x34
mov ecx, dword [r10 - 0x18]
mov r8d, dword [r10]
mov edx, dword [r10 - 0x28]
xor ecx, dword [r10 - 0x34]
rol r8d, 0xf
add r10, 4
xor ecx, r8d
rol edx, 7
mov eax, ecx
rol eax, 0xf
xor edx, eax
ror ecx, 9
xor edx, ecx
xor edx, dword [r10 - 0x10]
xor edx, dword [r10 - 0x1c]
xor edx, dword [r10 - 0x38]
xor edx, r8d
sub r15, 1
mov dword [r10 + 8], edx
jne 0x180094ab8
xor r10d, r10d
mov qword [rsp + 0x38], r10
mov rcx, r10
mov eax, dword [rsp + rcx + 0x50]
add rcx, 4
xor eax, dword [rsp + rcx + 0x3c]
cmp rcx, 0x100
mov dword [rsp + rcx + 0x14c], eax
jl 0x180094b05
mov r11d, r10d
mov rbx, r10
mov r10d, dword [rsp + 0x2a8]
mov esi, ebp
mov r9d, r13d
mov ebp, edi
mov r8d, dword [rsp + 0x2b0]
mov eax, r11d
mov r15d, ebp
rol r8d, 0xc
xor r15d, r10d
cdq
and edx, 0x1f
inc r11d
add rbx, 4
lea ecx, [rdx + rax]
mov eax, 0x79cc4519
and ecx, 0x1f
sub ecx, edx
mov edx, dword [rsp + 0x2b0]
rol eax, cl
mov ecx, dword [rsp + 0x2b8]
xor r15d, edx
add eax, r8d
mov dword [rsp + 0x2b8], ebp
mov ebp, r10d
add eax, esi
mov r10d, edx
rol eax, 7
xor r8d, eax
add r15d, r8d
mov r8d, dword [rsp + 8]
mov dword [rsp + 8], esi
add r15d, dword [rsp + rbx + 0x14c]
add r15d, ecx
mov ecx, r9d
xor ecx, r8d
mov dword [rsp + 0x2b0], r15d
xor ecx, esi
add ecx, dword [rsp + rbx + 0x3c]
add ecx, eax
add ecx, dword [rsp + 4]
rol ebp, 9
mov dword [rsp + 4], r9d
mov r9d, r8d
mov esi, ecx
mov eax, ecx
ror r9d, 0xd
ror esi, 0xf
rol eax, 9
xor esi, eax
xor esi, ecx
cmp r11d, 0x10
jl 0x180094b36
mov r10, qword [rsp + 0x38]
mov r11d, dword [rsp + 0x20]
mov ebx, dword [rsp + 0x30]
mov dword [rsp + 0x10], r9d
mov r9, qword [rsp + 0x2a0]
mov dword [rsp + 0xc], ebp
mov r13d, dword [rsp + 0xc]
mov r14d, dword [rsp + 0x10]
mov ebp, dword [rsp + 0x2c]
mov dword [rsp], esi
mov esi, dword [rsp + 0x14]
mov dword [rsp + 0x2a8], edx
mov edi, dword [rsp]
mov r12d, sendto
mov r8d, r15d
mov eax, r12d
inc r12d
cdq
rol r8d, 0xc
add r10, 4
and edx, 0x1f
lea ecx, [rdx + rax]
mov eax, r15d
and ecx, 0x1f
sub ecx, edx
mov edx, 0x7a879d8a
rol edx, cl
mov ecx, dword [rsp + 0x2a8]
or eax, ecx
and r15d, ecx
mov ecx, dword [rsp + 0x2b8]
and eax, r13d
add edx, r8d
mov dword [rsp + 0x2b8], r13d
mov r13d, dword [rsp + 0x2a8]
or eax, r15d
add edx, edi
add eax, dword [rsp + r10 + 0x18c]
rol edx, 7
mov r15d, r8d
mov r8d, dword [rsp + 8]
add eax, ecx
xor r15d, edx
add r15d, eax
mov ecx, edi
mov dword [rsp + 8], edi
not ecx
mov eax, r8d
and ecx, r14d
and eax, edi
or ecx, eax
add ecx, dword [rsp + r10 + 0x7c]
add ecx, edx
mov edx, dword [rsp + 0x2b0]
mov dword [rsp + 0x2b0], r15d
add ecx, dword [rsp + 4]
rol r13d, 9
mov dword [rsp + 4], r14d
mov r14d, r8d
mov r8d, edi
mov edi, ecx
ror r14d, 0xd
ror edi, 0xf
mov eax, ecx
rol eax, 9
mov dword [rsp + 0x2a8], edx
xor edi, eax
xor edi, ecx
cmp r12d, 0x40
jl 0x180094c2a
mov ecx, dword [rsp + 0x2b8]
mov r12d, dword [rsp + 0x18]
mov dword [rsp], edi
mov edi, dword [rsp + 0x28]
mov eax, dword [rsp]
xor r11d, r15d
xor edi, r13d
mov r13d, dword [rsp + 0x1c]
xor ebx, edx
xor r13d, r14d
mov r14d, dword [rsp + 0x24]
xor esi, ecx
xor ebp, eax
xor r12d, r8d
xor r14d, dword [rsp + 4]
mov dword [r9], r11d
mov dword [r9 + 4], ebx
mov dword [r9 + 8], edi
mov dword [r9 + 0x1c], r14d
mov dword [r9 + 0xc], esi
mov dword [r9 + 0x10], ebp
mov dword [r9 + 0x14], r12d
mov dword [r9 + 0x18], r13d
add rsp, 0x258
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret