Function at 0x100415a30
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x18
mov rbx, qword [rcx + 8]
mov r10d, dword [rdx]
mov eax, dword [rdx + 4]
mov r9d, dword [rdx + 0xc]
xor eax, dword [rbx + 4]
xor r10d, dword [rbx]
lea r11, [rbx + 0x10]
xor r9d, dword [rbx + 0xc]
mov rsi, rcx
mov ecx, dword [rdx + 8]
xor ecx, dword [rbx + 8]
mov dword [rsp], eax
mov edx, dword [rsi + 4]
mov esi, edx
sar esi, 1
cmp edx, 3
jle 0x100415ec0
lea edx, [rsi - 2]
lea r12, [0x1004405c0]
shl rdx, 5
lea rbp, [0x10043f9c0]
lea rdi, [0x1004401c0]
lea r13, [rbx + rdx + 0x30]
lea rsi, [0x10043fdc0]
mov eax, dword [rsp]
mov edx, r9d
movzx ebx, r10b
shr edx, 0x18
mov r14d, dword [r12 + rbx*4]
mov ebx, r10d
xor r14d, dword [rbp + rdx*4]
movzx edx, ah
xor r14d, dword [r11]
shr ebx, 0x18
xor r14d, dword [rdi + rdx*4]
mov edx, ecx
shr edx, 0x10
movzx edx, dl
xor r14d, dword [rsi + rdx*4]
movzx edx, al
shr eax, 0x18
mov edx, dword [r12 + rdx*4]
xor edx, dword [rbp + rbx*4]
movzx ebx, ch
mov r15d, eax
xor edx, dword [r11 + 4]
xor edx, dword [rdi + rbx*4]
mov ebx, r9d
mov eax, r9d
shr ebx, 0x10
movzx eax, ah
movzx r9d, r9b
movzx ebx, bl
mov r9d, dword [r12 + r9*4]
xor edx, dword [rsi + rbx*4]
movzx ebx, cl
shr ecx, 0x18
mov ebx, dword [r12 + rbx*4]
xor ebx, dword [rbp + r15*4]
mov r15d, r10d
xor ebx, dword [r11 + 8]
xor ebx, dword [rdi + rax*4]
mov eax, r10d
shr r15d, 0x10
movzx eax, ah
xor r9d, dword [rbp + rcx*4]
xor r9d, dword [r11 + 0xc]
movzx r15d, r15b
xor r9d, dword [rdi + rax*4]
mov eax, dword [rsp]
movzx ecx, r14b
xor ebx, dword [rsi + r15*4]
mov r10d, dword [r12 + rcx*4]
mov ecx, r14d
mov r15d, edx
shr eax, 0x10
shr ecx, 0x18
movzx eax, al
xor r9d, dword [rsi + rax*4]
mov eax, r9d
shr eax, 0x18
xor r10d, dword [rbp + rax*4]
movzx eax, dh
xor r10d, dword [r11 + 0x10]
xor r10d, dword [rdi + rax*4]
mov eax, ebx
shr eax, 0x10
movzx eax, al
xor r10d, dword [rsi + rax*4]
movzx eax, dl
mov eax, dword [r12 + rax*4]
xor eax, dword [rbp + rcx*4]
movzx ecx, bh
xor eax, dword [r11 + 0x14]
xor eax, dword [rdi + rcx*4]
mov ecx, r9d
shr r15d, 0x18
shr ecx, 0x10
shr edx, 0x10
add r11, 0x20
movzx ecx, cl
movzx edx, dl
xor eax, dword [rsi + rcx*4]
movzx ecx, bl
shr ebx, 0x18
mov dword [rsp], eax
mov eax, r9d
mov ecx, dword [r12 + rcx*4]
movzx r9d, r9b
xor ecx, dword [rbp + r15*4]
movzx eax, ah
mov r15d, r14d
xor ecx, dword [r11 - 8]
shr r15d, 0x10
xor ecx, dword [rdi + rax*4]
mov eax, r14d
mov r9d, dword [r12 + r9*4]
movzx r15d, r15b
movzx eax, ah
xor r9d, dword [rbp + rbx*4]
xor r9d, dword [r11 - 4]
xor ecx, dword [rsi + r15*4]
xor r9d, dword [rdi + rax*4]
xor r9d, dword [rsi + rdx*4]
cmp r13, r11
jne 0x100415aa0
mov eax, dword [rsp]
mov edx, r9d
movzx r11d, r10b
mov ebx, r10d
shr edx, 0x18
mov r11d, dword [r12 + r11*4]
shr ebx, 0x18
xor r11d, dword [rbp + rdx*4]
movzx edx, ah
xor r11d, dword [r13]
mov r15d, eax
xor r11d, dword [rdi + rdx*4]
mov edx, ecx
shr edx, 0x10
movzx edx, dl
xor r11d, dword [rsi + rdx*4]
movzx edx, al
shr eax, 0x18
mov edx, dword [r12 + rdx*4]
xor edx, dword [rbp + rbx*4]
movzx ebx, ch
mov r14d, eax
xor edx, dword [r13 + 4]
xor edx, dword [rdi + rbx*4]
mov ebx, r9d
mov eax, r9d
shr ebx, 0x10
movzx eax, ah
movzx r9d, r9b
movzx ebx, bl
mov r9d, dword [r12 + r9*4]
xor edx, dword [rsi + rbx*4]
movzx ebx, cl
shr ecx, 0x18
xor r9d, dword [rbp + rcx*4]
mov ebx, dword [r12 + rbx*4]
mov ecx, dword [r13 + 0xc]
xor ebx, dword [rbp + r14*4]
mov r14d, r10d
xor ebx, dword [r13 + 8]
xor ebx, dword [rdi + rax*4]
mov eax, r10d
shr r14d, 0x10
movzx eax, ah
xor ecx, r9d
movzx r14d, r14b
xor ecx, dword [rdi + rax*4]
mov eax, r15d
xor ebx, dword [rsi + r14*4]
shr eax, 0x10
mov r10d, ecx
movzx ecx, r11b
movzx eax, al
xor r10d, dword [rsi + rax*4]
lea rax, [0x1004409c0]
mov esi, edx
movzx r9d, byte [rax + rcx]
mov ecx, r10d
xor r9d, dword [r13 + 0x10]
shr ecx, 0x18
movzx ecx, byte [rax + rcx]
shl ecx, 0x18
xor r9d, ecx
movzx ecx, dh
movzx ecx, byte [rax + rcx]
shl ecx, 8
xor r9d, ecx
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
movzx ecx, byte [rax + rcx]
shl ecx, 0x10
xor r9d, ecx
movzx ecx, dl
shr esi, 0x18
movzx edi, byte [rax + rcx]
mov ecx, r11d
xor edi, dword [r13 + 0x14]
shr edx, 0x10
shr ecx, 0x18
movzx edx, dl
mov ebp, r9d
mov r12d, r9d
movzx ecx, byte [rax + rcx]
shr ebp, 0x10
shr r12d, 0x18
movzx r12d, r12b
movzx ebp, bpl
shl ecx, 0x18
xor edi, ecx
movzx ecx, bh
movzx ecx, byte [rax + rcx]
shl ecx, 8
xor edi, ecx
mov ecx, r10d
shr ecx, 0x10
movzx ecx, cl
movzx ecx, byte [rax + rcx]
shl ecx, 0x10
xor edi, ecx
movzx ecx, bl
shr ebx, 0x18
movzx ecx, byte [rax + rcx]
xor ecx, dword [r13 + 0x18]
movzx esi, byte [rax + rsi]
shl esi, 0x18
xor ecx, esi
mov r14d, ecx
mov ecx, r10d
movzx r10d, r10b
movzx esi, ch
mov ecx, r14d
movzx esi, byte [rax + rsi]
shl esi, 8
xor ecx, esi
mov esi, r11d
shr esi, 0x10
movzx esi, sil
movzx esi, byte [rax + rsi]
shl esi, 0x10
xor ecx, esi
movzx esi, byte [rax + r10]
mov r10d, ebx
xor esi, dword [r13 + 0x1c]
movzx r10d, byte [rax + r10]
mov r14d, ecx
mov ecx, r11d
mov r13d, edi
shr r13d, 0x10
shl r10d, 0x18
movzx r13d, r13b
xor esi, r10d
mov ebx, esi
movzx esi, ch
mov ecx, r14d
movzx r10d, byte [rax + rsi]
movzx eax, byte [rax + rdx]
mov edx, edi
shr edx, 0x18
shl r10d, 8
shl eax, 0x10
movzx edx, dl
xor ebx, r10d
xor ebx, eax
shr ecx, 0x10
mov eax, ebx
mov r10d, ecx
mov esi, ebx
mov ecx, r14d
shr eax, 0x18
shr ecx, 0x18
movzx r10d, r10b
shr esi, 0x10
shl rdx, 8
movzx eax, al
mov r11d, ecx
or rdx, r13
mov ecx, edi
movzx esi, sil
shl rax, 8
or rax, rsi
movzx ecx, ch
shl rdx, 8
movzx esi, bh
or rdx, rcx
shl rax, 8
movzx edi, dil
movzx ebx, bl
or rax, rsi
shl rdx, 8
movzx r11d, r11b
mov ecx, r9d
or rdx, rdi
shl rax, 8
movzx edi, ch
movzx r9d, r9b
or rax, rbx
shl rdx, 8
mov ebx, r14d
movzx ecx, r14b
or rdx, r12
shl rax, 8
or rax, r11
shl rdx, 8
or rdx, rbp
shl rax, 8
or rax, r10
shl rdx, 8
or rdx, rdi
shl rax, 8
movzx edi, bh
or rax, rdi
shl rdx, 8
shl rax, 8
or rdx, r9
or rax, rcx
mov qword [rsp], rdx
mov qword [rsp + 8], rax
movdqa xmm0, xmmword [rsp]
xor eax, eax
movups xmmword [r8], xmm0
add rsp, 0x18
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r13, r11
lea r12, [0x1004405c0]
lea rbp, [0x10043f9c0]
lea rdi, [0x1004401c0]
lea rsi, [0x10043fdc0]
jmp 0x100415c04