Function at 0x41550e
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov rax, r8
and rax, 0xfffffffffffffffc
lea r9, [rax + rax]
sub r9, rax
cmp r9, r8
ja 0x415966
mov r10, rdx
mov qword [rsp + 0x30], r8
movzx esi, word [rcx]
mov qword [rsp + 0x70], rcx
movzx r11d, word [rcx + 2]
mov rax, r9
shr rax, 6
movabs rcx, 0x179baa6bb6398b7
mul rcx
shr rdx, 1
imul rcx, rdx, 0x56c0
mov qword [rsp + 0x68], r9
sub r9, rcx
mov qword [rsp + 0x20], r9
xor edx, edx
mov eax, 0x56c0
cmp rcx, rax
mov qword [rsp + 0x38], r10
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x60], rcx
jae 0x4155a6
xor edi, edi
xor r14d, r14d
xor ebx, ebx
xor ebp, ebp
xor r15d, r15d
xor r12d, r12d
xor r13d, r13d
jmp 0x415720
mov eax, esi
and eax, 0xa93f
mov r9d, 0x56c0
mov edx, esi
and edx, r9d
mov r8d, edx
xor r8d, r9d
imul r8d, eax
or r9d, esi
imul r9d, edx
add r9d, r8d
mov dword [rsp + 0x2c], r9d
xor edx, edx
mov r9d, 0x80078071
xor edi, edi
xor r14d, r14d
xor ebx, ebx
xor ebp, ebp
xor r15d, r15d
mov rax, rcx
mov r8, r10
xor r13d, r13d
xor r12d, r12d
mov rsi, 0xffffffffffffa940
movzx r10d, byte [r8 + rsi + 0x56c0]
movzx ecx, byte [r8 + rsi + 0x56c1]
add r15d, ecx
movzx ecx, byte [r8 + rsi + 0x56c2]
add ebp, ecx
movzx ecx, byte [r8 + rsi + 0x56c3]
add ebx, ecx
mov ecx, r13d
and ecx, r10d
xor r13d, r10d
lea r13d, [r13 + rcx*2]
mov ecx, r13d
and ecx, r12d
xor r12d, r13d
lea r12d, [r12 + rcx*2]
add r14d, r15d
add edi, ebp
add edx, ebx
add rsi, 4
jne 0x4155f8
add rax, 0xffffffffffffa940
mov ecx, 0x56c0
add r8, rcx
mov esi, r11d
mov r10d, dword [rsp + 0x2c]
and esi, r10d
xor r11d, r10d
lea r11d, [r11 + rsi*2]
mov esi, r13d
imul rsi, r9
shr rsi, 0x2f
imul esi, esi, 0xfff1
sub r13d, esi
mov esi, r15d
imul rsi, r9
shr rsi, 0x2f
imul esi, esi, 0xfff1
sub r15d, esi
mov esi, ebp
imul rsi, r9
shr rsi, 0x2f
imul esi, esi, 0xfff1
sub ebp, esi
mov esi, ebx
imul rsi, r9
shr rsi, 0x2f
imul esi, esi, 0xfff1
sub ebx, esi
mov esi, r12d
imul rsi, r9
shr rsi, 0x2f
imul esi, esi, 0xfff1
sub r12d, esi
mov esi, r14d
imul rsi, r9
shr rsi, 0x2f
imul esi, esi, 0xfff1
sub r14d, esi
mov esi, edi
imul rsi, r9
shr rsi, 0x2f
imul esi, esi, 0xfff1
sub edi, esi
mov esi, edx
imul rsi, r9
shr rsi, 0x2f
imul esi, esi, 0xfff1
sub edx, esi
mov rsi, r11
imul rsi, r9
shr rsi, 0x2f
imul esi, esi, 0xfff1
sub r11d, esi
cmp rax, rcx
jae 0x4155f1
mov rax, qword [rsp + 0x20]
and rax, 0x7ffc
je 0x415826
mov r10, qword [rsp + 0x60]
add r10, qword [rsp + 0x38]
xor r8d, r8d
movzx ecx, byte [r10 + r8]
movzx r9d, byte [r10 + r8 + 1]
add r15d, r9d
movzx r9d, byte [r10 + r8 + 2]
add ebp, r9d
movzx r9d, byte [r10 + r8 + 3]
add ebx, r9d
mov r9d, r13d
and r9d, ecx
xor r13d, ecx
lea r13d, [r13 + r9*2]
mov ecx, r13d
and ecx, r12d
xor r12d, r13d
lea r12d, [r12 + rcx*2]
add r14d, r15d
add edi, ebp
add edx, ebx
add r8, 4
cmp rax, r8
jne 0x41573e
mov ecx, r13d
mov eax, 0x80078071
imul rcx, rax
shr rcx, 0x2f
imul ecx, ecx, 0xfff1
sub r13d, ecx
mov ecx, r15d
imul rcx, rax
shr rcx, 0x2f
imul ecx, ecx, 0xfff1
sub r15d, ecx
mov ecx, ebp
imul rcx, rax
shr rcx, 0x2f
imul ecx, ecx, 0xfff1
sub ebp, ecx
mov ecx, ebx
imul rcx, rax
shr rcx, 0x2f
imul ecx, ecx, 0xfff1
sub ebx, ecx
mov ecx, r12d
imul rcx, rax
shr rcx, 0x2f
imul ecx, ecx, 0xfff1
sub r12d, ecx
mov ecx, r14d
imul rcx, rax
shr rcx, 0x2f
imul ecx, ecx, 0xfff1
sub r14d, ecx
mov ecx, edi
imul rcx, rax
shr rcx, 0x2f
imul ecx, ecx, 0xfff1
sub edi, ecx
mov ecx, edx
imul rcx, rax
shr rcx, 0x2f
imul eax, ecx, 0xfff1
sub edx, eax
mov rsi, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x20]
mov eax, ecx
not eax
mov r10d, dword [rsp + 0x28]
and eax, r10d
mov r8d, r10d
or r8d, ecx
mov dword [rsp + 0x40], r13d
mov dword [rsp + 0x44], r15d
mov dword [rsp + 0x48], ebp
mov dword [rsp + 0x4c], ebx
shl r12d, 2
mov dword [rsp + 0x50], r12d
mov ecx, r14d
and ecx, 4
mov r9d, r14d
or r14d, 4
imul r14d, ecx
xor ecx, 4
and r9d, 0xfffb
imul r9d, ecx
shl edi, 2
sub r14d, r15d
add r14d, r9d
mov ecx, 0xfff1
add r14d, ecx
mov dword [rsp + 0x54], r14d
add ebp, ebp
sub edi, ebp
add edi, 0x1ffe2
mov dword [rsp + 0x58], edi
sub ecx, ebx
lea ecx, [rcx + rcx*2]
lea ecx, [rcx + rdx*4]
mov dword [rsp + 0x5c], ecx
xor edx, edx
mov ecx, r10d
add ecx, dword [rsp + rdx*4 + 0x40]
inc rdx
cmp rdx, 4
jne 0x4158b1
mov edx, r10d
not edx
mov r9, qword [rsp + 0x20]
and r10d, r9d
imul r8d, r10d
add r8d, r11d
and edx, r9d
imul eax, edx
add eax, r8d
mov edx, 0x80078071
imul rdx, rax
shr rdx, 0x2f
imul edx, edx, 0xfff1
sub eax, edx
xor edx, edx
mov r8, qword [rsp + 0x38]
mov r9, qword [rsp + 0x68]
add eax, dword [rsp + rdx*4 + 0x50]
inc rdx
cmp rdx, 4
jne 0x4158fc
cmp r9, rsi
je 0x41591f
movzx edx, byte [r8 + r9]
add ecx, edx
add eax, ecx
inc r9
cmp rsi, r9
jne 0x41590e
mov edx, ecx
mov r8d, 0x80078071
imul rdx, r8
shr rdx, 0x2f
imul edx, edx, 0xfff1
sub ecx, edx
mov rdx, qword [rsp + 0x70]
mov word [rdx], cx
mov ecx, eax
imul rcx, r8
shr rcx, 0x2f
imul ecx, ecx, 0xfff1
sub eax, ecx
mov word [rdx + 2], ax
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [0x0062cad6]
lea r8, [0x005bb708]
mov edx, 0x23
call fcn.00426370
ud2