Function at 0x140031b10
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x560
mov rax, qword [0x14018c010]
xor rax, rsp
mov qword [rsp + 0x550], rax
mov rbx, rcx
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x58], rcx
xor r15d, r15d
lea rcx, [rsp + 0xa8]
call fcn.140032dd0
nop
mov rsi, qword [rsp + 0xb8]
mov qword [rsp + 0x50], rsi
lea rcx, [rsi + 1]
call fcn.140130670
mov r13, rax
mov qword [rsp + 0x80], rax
lea rdx, [rsp + 0xa8]
cmp qword [rsp + 0xc0], 0x10
cmovae rdx, qword [rsp + 0xa8]
lea r8, [rsi + 1]
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rsi + 1]
call fcn.140130670
mov r14, rax
mov qword [rsp + 0x70], rax
lea rdx, [rsp + 0xa8]
cmp qword [rsp + 0xc0], 0x10
cmovae rdx, qword [rsp + 0xa8]
lea r8, [rsi + 1]
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
lea rax, vtable.AES.0
mov qword [rsp + 0xd0], rax
mov byte [rsp + 0xd8], r15b
mov qword [rsp + 0x49c], r15
mov dword [rsp + 0x4a4], r15d
lea rcx, [rsp + 0xd0]
call fcn.140030db0
cmp byte [rsp + 0xd8], r15b
je 0x140031ff0
test rsi, rsi
je 0x140031ff0
movsxd r11, dword [rsp + 0x4a0]
xor edx, edx
mov rax, rsi
div r11
test rdx, rdx
jne 0x140031ff0
xor r12d, r12d
mov dword [rsp + 0x34], r12d
mov r15, r13
mov qword [rsp + 0x48], r13
mov rdi, r14
mov qword [rsp + 0x40], r14
test rax, rax
je 0x140031fed
lea r8, [0x140000000]
mov rcx, r15
cmp byte [rsp + 0xd8], 0
je 0x140031f61
cmp r11d, 0x10
jne 0x140031c9b
mov r8, rdi
mov rdx, r15
lea rcx, [rsp + 0xd0]
call fcn.140030980
mov r11d, dword [rsp + 0x4a0]
jmp 0x140031f61
mov eax, r11d
cdq
and edx, 3
add eax, edx
sar eax, 2
movsxd r13, eax
xor eax, eax
cmp r13d, 4
je 0x140031cbc
cmp r13d, 6
setne al
inc rax
shl rax, 5
mov esi, dword [rax + r8 + 0x152adc]
mov ebx, dword [rax + r8 + 0x152ae4]
mov dword [rsp + 0x38], ebx
mov r15d, dword [rax + r8 + 0x152aec]
mov dword [rsp + 0x30], r15d
lea r9, [rsp + 0x528]
xor r10d, r10d
test r13d, r13d
jle 0x140031d4e
nop dword [rax]
nop word [rax + rax]
movzx r8d, byte [rcx]
movzx eax, byte [rcx + 1]
movzx edx, byte [rcx + 2]
shl r8d, 8
or r8d, eax
shl r8d, 8
or r8d, edx
shl r8d, 8
mov dword [r9], r8d
movzx eax, byte [rcx + 3]
lea rcx, [rcx + 4]
mov rdx, r9
add r9, 4
or r8d, eax
xor r8d, dword [rsp + r10*4 + 0x2bc]
mov dword [rdx], r8d
inc r10
cmp r10, r13
jl 0x140031d00
mov r11d, dword [rsp + 0x4a0]
mov r12d, 1
mov eax, dword [rsp + 0x4a4]
cmp eax, r12d
jle 0x140031e7f
lea eax, [r13*4]
cdqe
mov qword [rsp + 0x68], rax
mov r15, 0xfffffffffffffdb4
nop word [rax + rax]
xor r14d, r14d
test r13d, r13d
jle 0x140031e3d
mov ebx, esi
mov r10d, dword [rsp + 0x38]
sub r10d, esi
mov r11d, dword [rsp + 0x30]
sub r11d, esi
nop
lea eax, [rbx + r10]
cdq
idiv r13d
movsxd rax, edx
mov ecx, dword [rsp + rax*4 + 0x528]
sar rcx, 8
movzx r8d, cl
lea eax, [rbx + r11]
cdq
idiv r13d
movsxd rax, edx
movzx ecx, byte [rsp + rax*4 + 0x528]
lea rax, [0x140000000]
mov r9d, dword [rax + r8*4 + 0x1511d0]
lea r8, [0x140000000]
xor r9d, dword [r8 + rcx*4 + 0x1522d0]
mov eax, ebx
cdq
idiv r13d
movsxd rax, edx
mov ecx, dword [rsp + rax*4 + 0x528]
sar rcx, 0x10
movzx eax, cl
xor r9d, dword [r8 + rax*4 + 0x1501d0]
movzx eax, byte [rsp + r14*4 + 0x52b]
xor r9d, dword [r8 + rax*4 + 0x1526d0]
lea rax, [r15 + r14*4]
xor r9d, dword [rsp + rax + 0x528]
mov dword [rsp + r14*4 + 0x508], r9d
inc ebx
inc r14
cmp r14, r13
jl 0x140031da0
mov r8, qword [rsp + 0x68]
lea rdx, [rsp + 0x508]
lea rcx, [rsp + 0x528]
call sub.VCRUNTIME140.dll_memcpy
inc r12d
add r15, 0x20
mov eax, dword [rsp + 0x4a4]
cmp r12d, eax
jl 0x140031d80
mov r11d, dword [rsp + 0x4a0]
mov ebx, dword [rsp + 0x38]
mov r15d, dword [rsp + 0x30]
xor r14d, r14d
test r13d, r13d
jle 0x140031f4d
movsxd r10, eax
mov r9, qword [rsp + 0x40]
shl r10, 5
sub esi, ebx
sub r15d, ebx
lea r12, [0x140000000]
lea rax, [r10 + r14*4]
mov r8d, dword [rsp + rax + 0x2bc]
movzx ecx, byte [rsp + r14*4 + 0x52b]
mov eax, r8d
sar eax, 0x18
xor al, byte [rcx + r12 + 0x1500d0]
mov byte [r9], al
lea eax, [rsi + rbx]
cdq
idiv r13d
movsxd rax, edx
mov ecx, dword [rsp + rax*4 + 0x528]
sar rcx, 0x10
movzx edx, cl
mov eax, r8d
sar eax, 0x10
xor al, byte [rdx + r12 + 0x1500d0]
mov byte [r9 + 1], al
mov eax, ebx
cdq
idiv r13d
movsxd rax, edx
mov ecx, dword [rsp + rax*4 + 0x528]
sar rcx, 8
movzx edx, cl
mov eax, r8d
sar eax, 8
xor al, byte [rdx + r12 + 0x1500d0]
mov byte [r9 + 2], al
lea eax, [r15 + rbx]
cdq
idiv r13d
movsxd rax, edx
movzx ecx, byte [rsp + rax*4 + 0x528]
xor r8b, byte [rcx + r12 + 0x1500d0]
mov byte [r9 + 3], r8b
lea r9, [r9 + 4]
inc ebx
inc r14
cmp r14, r13
jl 0x140031ea3
mov r12d, dword [rsp + 0x34]
mov r15, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x40]
mov rcx, rdi
cmp byte [rsp + 0xd8], 0
je 0x140031f92
test r11d, r11d
jle 0x140031f92
lea r8, [rsp + 0x4c8]
sub r8, rdi
mov edx, r11d
movzx eax, byte [r8 + rcx]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x140031f81
movsxd r8, r11d
mov rdx, r15
lea rcx, [rsp + 0x4c8]
call sub.VCRUNTIME140.dll_memcpy
movsxd r11, dword [rsp + 0x4a0]
add r15, r11
mov qword [rsp + 0x48], r15
add rdi, r11
mov qword [rsp + 0x40], rdi
inc r12d
mov dword [rsp + 0x34], r12d
xor edx, edx
mov rax, rsi
div r11
mov rcx, rax
movsxd rax, r12d
cmp rax, rcx
lea r8, [0x140000000]
jb 0x140031c64
mov r14, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x78]
xor r15d, r15d
movzx r8d, byte [r14 + rsi - 1]
lea edx, [rsi - 1]
nop dword [rax]
movsxd r9, edx
movsx rax, r8b
mov rcx, rsi
sub rcx, rax
cmp r9, rcx
jb 0x14003207d
cmp byte [r9 + r14], r8b
je 0x140032074
mov dword [rsp + 0x30], 2
lea rdx, [0x140157db0]
lea rcx, [rsp + 0x30]
call fcn.140031250
mov r8, rsi
xor edx, edx
mov rcx, r14
call sub.VCRUNTIME140.dll_memset
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], r15
mov qword [rbx + 0x18], r15
xor r8d, r8d
lea rdx, [0x14014dddb]
mov rcx, rbx
call fcn.140023450
nop
lea rcx, [rsp + 0xa8]
call fcn.140021950
mov rax, rbx
jmp 0x140032127
mov byte [r9 + r14], 0
dec edx
jmp 0x140032000
xorps xmm0, xmm0
movups xmmword [rsp + 0x88], xmm0
mov qword [rsp + 0x98], r15
mov qword [rsp + 0xa0], r15
mov r8, 0xffffffffffffffff
nop
inc r8
cmp byte [r14 + r8], 0
jne 0x1400320a0
mov rdx, r14
lea rcx, [rsp + 0x88]
call fcn.140023450
mov rcx, qword [rsp + 0x80]
call fcn.140036bd0
mov rcx, r14
call fcn.140036bd0
movups xmm0, xmmword [rsp + 0x88]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rsp + 0x98]
movups xmmword [rbx + 0x10], xmm1
mov qword [rsp + 0x98], r15
mov qword [rsp + 0xa0], recvfrom
mov byte [rsp + 0x88], 0
lea rcx, [rsp + 0x88]
call fcn.140021950
nop
lea rcx, [rsp + 0xa8]
call fcn.140021950
mov rax, rbx
jmp 0x140032127
mov rcx, qword [rsp + 0x550]
xor rcx, rsp
call fcn.140130030
lea r11, [rsp + 0x560]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret