Function at 0x1800507e0
Capabilities:
Encode data using xor

Disassembly:
test r8, r8
je 0x180051080
mov rax, rsp
mov qword [rax + 0x18], r8
sub rsp, 0x58
mov r10d, dword [rcx + 4]
mov r9d, dword [rcx + 0xc]
mov qword [rax + 8], rbx
mov ebx, dword [rcx + 8]
mov qword [rax - 8], rbp
mov qword [rax - 0x10], rsi
lea rsi, [rdx + 8]
mov qword [rax - 0x18], rdi
mov qword [rax - 0x20], r12
mov qword [rax - 0x28], r13
mov qword [rax - 0x30], r14
mov qword [rax - 0x38], r15
mov dword [rsp + 4], ebx
mov dword [rsp], r10d
mov dword [rsp + 8], r9d
mov qword [rsp + 0x10], rsi
nop word [rax + rax]
mov r8d, dword [rcx]
lea edx, [r9 - 0x28955b88]
mov r9d, dword [rsi]
mov eax, r10d
xor eax, r8d
mov r15d, dword [rsi + 0x14]
and eax, ebx
mov edi, dword [rsi + 0x18]
xor eax, r8d
add r8d, 0xe8c7b756
add eax, dword [rsi - 8]
add edx, eax
mov eax, r10d
xor eax, ebx
rol edx, 7
add edx, ebx
and eax, edx
xor eax, r10d
add eax, dword [rsi - 4]
add r8d, eax
mov eax, ebx
xor eax, edx
rol r8d, 0xc
add r8d, edx
and eax, r8d
xor eax, ebx
add eax, r10d
lea r10d, [r9 + 0x242070db]
add r10d, eax
mov r9d, r8d
xor r9d, edx
rol r10d, 0x11
add r10d, r8d
mov eax, r8d
xor eax, r10d
and r9d, r10d
xor r9d, edx
add r9d, 0xc1bdceee
add r9d, dword [rsi + 4]
add r9d, ebx
mov ebx, dword [rsi + 0xc]
rol r9d, 0x16
add r9d, r10d
and eax, r9d
xor eax, r8d
add eax, 0xf57c0faf
add edx, eax
mov eax, r10d
add edx, dword [rsi + 8]
xor eax, r9d
rol edx, 7
add edx, r9d
and eax, edx
xor eax, r10d
add eax, 0x4787c62a
add r8d, eax
mov eax, r9d
xor eax, edx
add r8d, ebx
rol r8d, 0xc
add r8d, edx
and eax, r8d
xor eax, r9d
add eax, 0xa8304613
add eax, dword [rsi + 0x10]
add r10d, eax
mov eax, r8d
xor eax, edx
rol r10d, 0x11
add r10d, r8d
and eax, r10d
xor eax, edx
add eax, 0xfd469501
add r9d, eax
mov eax, r8d
add r9d, r15d
xor eax, r10d
rol r9d, 0x16
add r9d, r10d
and eax, r9d
xor eax, r8d
add eax, 0x698098d8
mov r11d, dword [rsi + 0x1c]
add edx, eax
mov r12d, dword [rsi + 0x20]
mov ebp, dword [rsi + 0x28]
mov eax, r10d
xor eax, r9d
mov r13d, dword [rsi + 0x2c]
mov dword [rsp + 0x78], r11d
add edx, edi
rol edx, 7
add edx, r9d
and eax, edx
xor eax, r10d
add eax, 0x8b44f7af
add r8d, eax
mov eax, r9d
xor eax, edx
add r8d, r11d
rol r8d, 0xc
add r8d, edx
and eax, r8d
mov r11d, r8d
xor eax, r9d
add eax, 0xffff5bb1
add eax, r12d
add r10d, eax
mov eax, r8d
xor eax, edx
rol r10d, 0x11
add r10d, r8d
and eax, r10d
xor r11d, r10d
xor eax, edx
add eax, 0x895cd7be
add eax, dword [rsi + 0x24]
mov esi, dword [rsi + 0x30]
add r9d, eax
rol r9d, 0x16
mov eax, r10d
add r9d, r10d
xor eax, r9d
and r11d, r9d
xor r11d, r8d
add r11d, 0x6b901122
add r11d, ebp
add r11d, edx
rol r11d, 7
add r11d, r9d
and eax, r11d
xor eax, r10d
add eax, 0xfd987193
add eax, r13d
add r8d, eax
mov eax, r9d
xor eax, r11d
rol r8d, 0xc
add r8d, r11d
and eax, r8d
mov edx, r8d
xor eax, r9d
not edx
add eax, 0xa679438e
add eax, esi
add r10d, eax
mov rax, qword [rsp + 0x10]
rol r10d, 0x11
add r10d, r8d
and edx, r10d
mov r14d, dword [rax + 0x34]
mov eax, r8d
xor eax, r11d
and eax, r10d
xor eax, r11d
add eax, 0x49b40821
add eax, r14d
add r9d, eax
mov eax, r8d
rol r9d, 0x16
add r9d, r10d
and eax, r9d
or edx, eax
mov rax, qword [rsp + 0x10]
add edx, 0xf61e2562
add edx, dword [rax - 4]
mov eax, r10d
add r11d, edx
mov edx, r10d
not edx
rol r11d, 5
and edx, r9d
add r11d, r9d
and eax, r11d
or edx, eax
mov rax, qword [rsp + 0x10]
add edx, 0xc040b340
add edx, dword [rax + 0x10]
add r8d, edx
mov edx, r9d
not edx
rol r8d, 9
and edx, r11d
add r8d, r11d
mov eax, r8d
and eax, r9d
or edx, eax
mov rax, qword [rsp + 0x10]
add edx, 0x265e5a51
add edx, dword [rax + 0x24]
add r10d, edx
mov edx, r11d
not edx
rol r10d, 0xe
and edx, r8d
add r10d, r8d
mov eax, r10d
and eax, r11d
or edx, eax
mov rax, qword [rsp + 0x10]
add edx, 0xe9b6c7aa
add edx, dword [rax - 8]
mov eax, r8d
add r9d, edx
mov edx, r8d
not edx
rol r9d, 0x14
and edx, r10d
add r9d, r10d
and eax, r9d
or edx, eax
mov eax, r10d
add edx, 0xd62f105d
add edx, ebx
add r11d, edx
mov edx, r10d
not edx
rol r11d, 5
and edx, r9d
add r11d, r9d
and eax, r11d
or edx, eax
add edx, 0x2441453
add edx, r12d
add r8d, edx
mov edx, r9d
not edx
rol r8d, 9
and edx, r11d
add r8d, r11d
mov eax, r8d
and eax, r9d
or edx, eax
add edx, 0xd8a1e681
add edx, r14d
add r10d, edx
mov edx, r11d
rol r10d, 0xe
not edx
add r10d, r8d
and edx, r8d
mov eax, r10d
and eax, r11d
or edx, eax
lea ebx, [r8 - 0x3cc8f82a]
mov rax, qword [rsp + 0x10]
add edx, 0xe7d3fbc8
add edx, dword [rax + 8]
mov eax, r8d
add r9d, edx
mov edx, r8d
not edx
rol r9d, 0x14
and edx, r10d
add r9d, r10d
and eax, r9d
or edx, eax
mov eax, r10d
add edx, 0x21e1cde6
add edx, dword [rsp + 0x78]
add r11d, edx
mov edx, r10d
not edx
rol r11d, 5
and edx, r9d
add r11d, r9d
and eax, r11d
or edx, eax
add edx, esi
add ebx, edx
mov edx, r9d
not edx
rol ebx, 9
and edx, r11d
add ebx, r11d
mov eax, ebx
mov r8d, ebx
and eax, r9d
not r8d
or edx, eax
mov rax, qword [rsp + 0x10]
add edx, 0xf4d50d87
add edx, dword [rax + 4]
add r10d, edx
mov edx, r11d
not edx
rol r10d, 0xe
and edx, ebx
add r10d, ebx
and r8d, r10d
mov eax, r10d
and eax, r11d
or edx, eax
mov eax, ebx
add edx, edi
lea edi, [r9 + 0x455a14ed]
mov r9, qword [rsp + 0x10]
add edi, edx
rol edi, 0x14
mov edx, r10d
not edx
add edi, r10d
and eax, edi
and edx, edi
or r8d, eax
mov eax, r10d
add r8d, 0xa9e3e905
add r8d, r13d
add r8d, r11d
rol r8d, 5
add r8d, edi
and eax, r8d
or edx, eax
add edx, dword [r9]
lea r9d, [rbx - 0x3105c08]
add r9d, edx
mov edx, edi
rol r9d, 9
not edx
add r9d, r8d
and edx, r8d
mov eax, r9d
and eax, edi
or edx, eax
mov rbx, qword [rsp + 0x10]
lea r11d, [rdi - 0x72d5b376]
add edx, 0x676f02d9
add edx, r15d
add r10d, edx
mov edx, r8d
mov edi, dword [rbx + 0xc]
not edx
and edx, r9d
rol r10d, 0xe
add r10d, r9d
mov eax, r10d
and eax, r8d
or edx, eax
mov eax, r9d
xor eax, r10d
add edx, ebp
add r11d, edx
rol r11d, 0x14
add r11d, r10d
xor eax, r11d
add eax, 0xfffa3942
add eax, edi
add r8d, eax
mov eax, r10d
xor eax, r11d
rol r8d, 4
add r8d, r11d
xor eax, r8d
add eax, 0x8771f681
add eax, dword [rbx + 0x18]
add r9d, eax
rol r9d, 0xb
add r9d, r8d
mov eax, r9d
mov edx, r9d
xor eax, r11d
xor eax, r8d
add eax, 0x6d9d6122
add eax, dword [rbx + 0x24]
add r10d, eax
rol r10d, 0x10
add r10d, r9d
xor edx, r10d
mov eax, edx
xor eax, r8d
add eax, 0xfde5380c
add eax, esi
add r11d, eax
mov eax, r10d
rol r11d, 0x17
add r11d, r10d
xor eax, r11d
xor edx, r11d
add edx, 0xa4beea44
add edx, dword [rbx - 4]
add r8d, edx
rol r8d, 4
add r8d, r11d
xor eax, r8d
add eax, 0x4bdecfa9
add eax, dword [rbx + 8]
add r9d, eax
rol r9d, 0xb
add r9d, r8d
mov eax, r9d
mov edx, r9d
xor eax, r11d
xor eax, r8d
add eax, 0xf6bb4b60
add eax, r15d
add r10d, eax
rol r10d, 0x10
add r10d, r9d
xor edx, r10d
mov eax, edx
xor eax, r8d
add eax, 0xbebfbc70
add eax, r12d
add r11d, eax
rol r11d, 0x17
add r11d, r10d
lea ebx, [r8 + 0x289b7ec6]
mov r8, qword [rsp + 0x10]
xor edx, r11d
add edx, r13d
mov eax, r10d
xor eax, r11d
add ebx, edx
rol ebx, 4
add ebx, r11d
xor eax, ebx
add eax, 0xeaa127fa
add eax, dword [r8 - 8]
add r9d, eax
rol r9d, 0xb
add r9d, ebx
mov eax, r9d
mov edx, r9d
xor eax, r11d
xor eax, ebx
add eax, 0xd4ef3085
add eax, dword [r8 + 4]
add r10d, eax
rol r10d, 0x10
add r10d, r9d
xor edx, r10d
mov eax, edx
xor eax, ebx
add eax, dword [r8 + 0x10]
lea r8d, [r11 + 0x4881d05]
add r8d, eax
mov r11, qword [rsp + 0x10]
rol r8d, 0x17
mov eax, r10d
add r8d, r10d
xor eax, r8d
xor edx, r8d
add edx, 0xd9d4d039
add edx, dword [rsp + 0x78]
add edx, ebx
rol edx, 4
add edx, r8d
xor eax, edx
add eax, 0xe6db99e5
add eax, ebp
add r9d, eax
rol r9d, 0xb
add r9d, edx
mov eax, r9d
xor eax, r8d
xor eax, edx
add eax, 0x1fa27cf8
add eax, r14d
add r10d, eax
mov eax, r9d
rol r10d, 0x10
add r10d, r9d
xor eax, r10d
xor eax, edx
add eax, r8d
mov r8d, dword [r11]
add r8d, 0xc4ac5665
add r8d, eax
mov eax, r9d
not eax
rol r8d, 0x17
add r8d, r10d
or eax, r8d
xor eax, r10d
add eax, 0xf4292244
add eax, dword [r11 - 8]
add edx, eax
mov eax, r10d
not eax
rol edx, 6
add edx, r8d
or eax, edx
xor eax, r8d
add eax, 0x432aff97
add eax, r15d
add r9d, eax
rol r9d, 0xa
mov eax, r8d
not eax
add r9d, edx
or eax, r9d
xor eax, edx
add eax, 0xab9423a7
add eax, esi
mov rsi, r11
add r10d, eax
mov eax, edx
not eax
rol r10d, 0xf
add r10d, r9d
or eax, r10d
xor eax, r9d
add eax, 0xfc93a039
add eax, edi
add r8d, eax
mov eax, r9d
not eax
rol r8d, 0x15
add r8d, r10d
or eax, r8d
xor eax, r10d
add eax, 0x655b59c3
add eax, ebp
add edx, eax
mov eax, r10d
not eax
rol edx, 6
add edx, r8d
or eax, edx
xor eax, r8d
add eax, 0x8f0ccc92
add eax, dword [r11 + 4]
add r9d, eax
mov eax, r8d
not eax
rol r9d, 0xa
add r9d, edx
or eax, r9d
xor eax, edx
add eax, 0xffeff47d
add eax, r12d
add r10d, eax
mov eax, edx
not eax
rol r10d, 0xf
add r10d, r9d
or eax, r10d
xor eax, r9d
add eax, 0x85845dd1
add eax, dword [r11 - 4]
add r8d, eax
mov eax, r9d
not eax
rol r8d, 0x15
add r8d, r10d
or eax, r8d
xor eax, r10d
add eax, 0x6fa87e4f
add eax, dword [r11 + 0x18]
add edx, eax
mov eax, r10d
not eax
rol edx, 6
add edx, r8d
or eax, edx
xor eax, r8d
add eax, 0xfe2ce6e0
add eax, r14d
add r9d, eax
mov eax, r8d
not eax
rol r9d, 0xa
add r9d, edx
or eax, r9d
xor eax, edx
add eax, 0xa3014314
add eax, dword [r11 + 0x10]
add r10d, eax
lea ebx, [r8 + 0x4e0811a1]
mov eax, edx
rol r10d, 0xf
not eax
lea r8d, [r9 - 0x42c50dcb]
add r10d, r9d
or eax, r10d
xor eax, r9d
add eax, r13d
add ebx, eax
mov eax, r9d
mov r9d, dword [rsp + 8]
not eax
rol ebx, 0x15
add ebx, r10d
or eax, ebx
xor eax, r10d
add eax, dword [r11 + 8]
lea r11d, [rdx - 0x8ac817e]
mov edx, dword [rsi]
add r11d, eax
add edx, 0x2ad7d2bb
rol r11d, 6
add r11d, ebx
mov eax, r10d
not eax
add r9d, r11d
or eax, r11d
mov dword [rsp + 8], r9d
xor eax, ebx
add eax, dword [rsi + 0x24]
add rsi, 0x40
add r8d, eax
mov dword [rcx + 0xc], r9d
mov eax, ebx
rol r8d, 0xa
not eax
mov qword [rsp + 0x10], rsi
add r8d, r11d
add ebx, 0xeb86d391
add dword [rcx], r8d
or eax, r8d
xor eax, r11d
add eax, r10d
mov r10d, dword [rsp]
add edx, eax
mov eax, r11d
not eax
rol edx, 0xf
add edx, r8d
or eax, edx
add r10d, edx
xor eax, r8d
mov dword [rsp], r10d
add eax, dword [rsp + 0x78]
add eax, ebx
mov dword [rcx + 4], r10d
mov ebx, dword [rsp + 4]
rol eax, 0x15
add eax, edx
add ebx, eax
sub qword [rsp + 0x70], 1
mov dword [rsp + 4], ebx
mov dword [rcx + 8], ebx
jne 0x180050840
mov r15, qword [rsp + 0x20]
mov r14, qword [rsp + 0x28]
mov r13, qword [rsp + 0x30]
mov r12, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x60]
add rsp, 0x58
ret