Function at 0x140046cc4
Capabilities:
Encode data using xor

Disassembly:
test r8, r8
je 0x14004776b
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x38
mov r11d, dword [rcx + 4]
mov rax, r8
mov r10d, dword [rcx + 8]
mov rsi, rdx
mov r9d, dword [rcx + 0xc]
mov r14d, 1
mov ebx, dword [rcx]
mov dword [rsp + 0x1c], r11d
mov dword [rsp + 0x20], r10d
mov dword [rsp + 0x24], r9d
movzx ecx, byte [rsi]
sub rax, r14
mov qword [rsp + 0x90], rax
add rsi, r14
movzx eax, byte [rsi]
add rsi, r14
shl eax, 8
or ecx, eax
movzx eax, byte [rsi]
add rsi, r14
shl eax, 0x10
or ecx, eax
movzx eax, byte [rsi]
add rsi, r14
shl eax, 0x18
or ecx, eax
mov dword [rsp + 0x98], ecx
movzx edx, byte [rsi]
add rsi, r14
movzx eax, byte [rsi]
add rsi, r14
shl eax, 8
or edx, eax
movzx eax, byte [rsi]
add rsi, r14
shl eax, 0x10
or edx, eax
movzx eax, byte [rsi]
add rsi, r14
shl eax, 0x18
or edx, eax
mov eax, r9d
xor eax, r10d
mov dword [rsp + 4], edx
movzx r8d, byte [rsi]
and eax, r11d
xor eax, r9d
add rsi, r14
add eax, 0xd76aa478
add ecx, eax
add ecx, ebx
movzx eax, byte [rsi]
add rsi, r14
shl eax, 8
or r8d, eax
rol ecx, 7
add ecx, r11d
movzx eax, byte [rsi]
add rsi, r14
shl eax, 0x10
or r8d, eax
movzx eax, byte [rsi]
add rsi, r14
shl eax, 0x18
or r8d, eax
mov eax, r10d
xor eax, r11d
mov dword [rsp + 0x10], r8d
and eax, ecx
xor eax, r10d
add eax, edx
lea edx, [r9 - 0x173848aa]
movzx r9d, byte [rsi]
add edx, eax
add rsi, r14
rol edx, 0xc
add edx, ecx
movzx eax, byte [rsi]
add rsi, r14
shl eax, 8
or r9d, eax
movzx eax, byte [rsi]
add rsi, r14
shl eax, 0x10
or r9d, eax
movzx eax, byte [rsi]
shl eax, 0x18
or r9d, eax
mov eax, r11d
mov dword [rsp], r9d
add rsi, r14
xor eax, ecx
and eax, edx
xor eax, r11d
add eax, r8d
lea r8d, [r10 + 0x242070db]
movzx r10d, byte [rsi]
add r8d, eax
add rsi, r14
rol r8d, 0x11
add r8d, edx
movzx eax, byte [rsi]
add rsi, r14
shl eax, 8
or r10d, eax
movzx eax, byte [rsi]
add rsi, r14
shl eax, 0x10
or r10d, eax
movzx eax, byte [rsi]
add rsi, r14
shl eax, 0x18
or r10d, eax
mov eax, edx
xor eax, ecx
mov dword [rsp + 0xc], r10d
and eax, r8d
xor eax, ecx
add eax, 0xc1bdceee
add r9d, eax
add r9d, r11d
movzx r11d, byte [rsi]
add rsi, r14
rol r9d, 0x16
add r9d, r8d
movzx eax, byte [rsi]
add rsi, r14
shl eax, 8
or r11d, eax
movzx eax, byte [rsi]
add rsi, r14
shl eax, 0x10
or r11d, eax
movzx eax, byte [rsi]
add rsi, r14
shl eax, 0x18
or r11d, eax
mov eax, edx
xor eax, r8d
mov dword [rsp + 0x18], r11d
movzx ebx, byte [rsi]
and eax, r9d
xor eax, edx
add rsi, r14
add eax, r10d
lea r10d, [rcx - 0xa83f051]
add r10d, eax
mov ecx, r8d
xor ecx, r9d
rol r10d, 7
movzx eax, byte [rsi]
add r10d, r9d
shl eax, 8
and ecx, r10d
or ebx, eax
xor ecx, r8d
add rsi, r14
add ecx, 0x4787c62a
add ecx, r11d
add ecx, edx
rol ecx, 0xc
movzx eax, byte [rsi]
add rsi, r14
shl eax, 0x10
or ebx, eax
movzx eax, byte [rsi]
add rsi, r14
shl eax, 0x18
or ebx, eax
mov dword [rsp + 8], ebx
add ecx, r10d
movzx r12d, byte [rsi]
add rsi, r14
add ebx, 0xa8304613
mov edx, r9d
xor edx, r10d
and edx, ecx
movzx eax, byte [rsi]
xor edx, r9d
shl eax, 8
add rsi, r14
or r12d, eax
add edx, ebx
add edx, r8d
lea r8d, [r9 - 0x2b96aff]
rol edx, 0x11
lea r9d, [r10 + 0x698098d8]
movzx eax, byte [rsi]
add edx, ecx
shl eax, 0x10
add rsi, r14
or r12d, eax
movzx eax, byte [rsi]
add rsi, r14
shl eax, 0x18
or r12d, eax
movzx ebx, byte [rsi]
add rsi, r14
movzx eax, byte [rsi]
add rsi, r14
shl eax, 8
or ebx, eax
movzx eax, byte [rsi]
add rsi, r14
shl eax, 0x10
or ebx, eax
movzx eax, byte [rsi]
add rsi, r14
shl eax, 0x18
or ebx, eax
mov eax, ecx
xor eax, r10d
mov dword [rsp + 0x28], ebx
movzx edi, byte [rsi]
and eax, edx
xor eax, r10d
add rsi, r14
add eax, r12d
add r8d, eax
rol r8d, 0x16
movzx eax, byte [rsi]
add r8d, edx
shl eax, 8
add rsi, r14
or edi, eax
movzx eax, byte [rsi]
add rsi, r14
shl eax, 0x10
or edi, eax
movzx eax, byte [rsi]
add rsi, r14
shl eax, 0x18
or edi, eax
mov eax, ecx
xor eax, edx
mov dword [rsp + 0x14], edi
movzx r15d, byte [rsi]
and eax, r8d
xor eax, ecx
add rsi, r14
add eax, ebx
add r9d, eax
rol r9d, 7
movzx eax, byte [rsi]
add r9d, r8d
shl eax, 8
add rsi, r14
or r15d, eax
movzx eax, byte [rsi]
shl eax, 0x10
or r15d, eax
add rsi, r14
movzx eax, byte [rsi]
shl eax, 0x18
lea r10d, [rcx - 0x74bb0851]
or r15d, eax
lea ecx, [rdx - 0xa44f]
add rsi, r14
mov eax, edx
xor eax, r8d
and eax, r9d
xor eax, edx
lea edx, [r8 - 0x76a32842]
movzx r13d, byte [rsi]
add eax, edi
add r10d, eax
add rsi, r14
rol r10d, 0xc
add r10d, r9d
movzx eax, byte [rsi]
add rsi, r14
shl eax, 8
or r13d, eax
movzx eax, byte [rsi]
add rsi, r14
shl eax, 0x10
or r13d, eax
movzx eax, byte [rsi]
add rsi, r14
shl eax, 0x18
or r13d, eax
mov eax, r8d
xor eax, r9d
movzx ebp, byte [rsi]
and eax, r10d
xor eax, r8d
add rsi, r14
add eax, r15d
lea r8d, [r9 + 0x6b901122]
add ecx, eax
rol ecx, 0x11
movzx eax, byte [rsi]
add ecx, r10d
shl eax, 8
add rsi, r14
or ebp, eax
movzx eax, byte [rsi]
add rsi, r14
shl eax, 0x10
or ebp, eax
movzx eax, byte [rsi]
add rsi, r14
shl eax, 0x18
or ebp, eax
mov eax, r10d
xor eax, r9d
movzx r14d, byte [rsi]
and eax, ecx
movzx edi, byte [rsi + 4]
xor eax, r9d
add eax, r13d
add edx, eax
movzx eax, byte [rsi + 1]
shl eax, 8
or r14d, eax
rol edx, 0x16
movzx eax, byte [rsi + 2]
add edx, ecx
shl eax, 0x10
or r14d, eax
movzx eax, byte [rsi + 3]
shl eax, 0x18
or r14d, eax
mov eax, r10d
xor eax, ecx
and eax, edx
xor eax, r10d
add eax, ebp
add r8d, eax
movzx eax, byte [rsi + 5]
rol r8d, 7
add r8d, edx
shl eax, 8
or edi, eax
movzx eax, byte [rsi + 6]
lea r9d, [r10 - 0x2678e6d]
shl eax, 0x10
or edi, eax
movzx eax, byte [rsi + 7]
shl eax, 0x18
add rsi, 8
or edi, eax
mov qword [rsp + 0x88], rsi
mov r10, qword [rsp + 0x88]
mov eax, ecx
xor eax, edx
and eax, r8d
movzx esi, byte [rsi]
xor eax, ecx
add eax, r14d
add r9d, eax
movzx eax, byte [r10 + 1]
shl eax, 8
or esi, eax
rol r9d, 0xc
movzx eax, byte [r10 + 2]
add r9d, r8d
shl eax, 0x10
or esi, eax
movzx eax, byte [r10 + 3]
shl eax, 0x18
add r10, 4
or esi, eax
mov qword [rsp + 0x88], r10
mov eax, edx
xor eax, r8d
and eax, r9d
xor eax, edx
add eax, 0xa679438e
add eax, edi
add ecx, eax
mov eax, r9d
xor eax, r8d
rol ecx, 0x11
add ecx, r9d
and eax, ecx
xor eax, r8d
add eax, 0x49b40821
add eax, esi
lea r10d, [rcx + 0x265e5a51]
add edx, eax
mov eax, ecx
rol edx, 0x16
add edx, ecx
xor eax, edx
and eax, r9d
xor eax, ecx
add eax, 0xf61e2562
add eax, dword [rsp + 4]
add r8d, eax
mov eax, edx
rol r8d, 5
add r8d, edx
xor eax, r8d
and eax, ecx
lea ecx, [rdx - 0x16493856]
xor eax, edx
add eax, 0xc040b340
add eax, dword [rsp + 8]
add r9d, eax
rol r9d, 9
add r9d, r8d
mov eax, r9d
xor eax, r8d
and eax, edx
xor eax, r8d
add eax, r13d
add r10d, eax
mov eax, r9d
rol r10d, 0xe
add r10d, r9d
xor eax, r10d
and eax, r8d
xor eax, r9d
add eax, dword [rsp + 0x98]
add ecx, eax
lea edx, [r8 - 0x29d0efa3]
rol ecx, 0x14
lea r8d, [r9 + 0x2441453]
add ecx, r10d
mov eax, r10d
xor eax, ecx
and eax, r9d
lea r9d, [r10 - 0x275e197f]
xor eax, r10d
add eax, r11d
add edx, eax
mov eax, ecx
rol edx, 5
add edx, ecx
xor eax, edx
and eax, r10d
lea r10d, [rcx - 0x182c0438]
xor eax, ecx
add eax, r15d
add r8d, eax
rol r8d, 9
add r8d, edx
mov eax, r8d
xor eax, edx
and eax, ecx
lea ecx, [rdx + 0x21e1cde6]
xor eax, edx
add eax, esi
add r9d, eax
mov eax, r8d
rol r9d, 0xe
add r9d, r8d
xor eax, r9d
and eax, edx
lea edx, [r8 - 0x3cc8f82a]
xor eax, r8d
add eax, dword [rsp + 0xc]
lea r11d, [r9 - 0xb2af279]
add r10d, eax
mov eax, r9d
rol r10d, 0x14
add r10d, r9d
xor eax, r10d
and eax, r8d
xor eax, r9d
add eax, dword [rsp + 0x14]
add ecx, eax
mov eax, r10d
rol ecx, 5
add ecx, r10d
xor eax, ecx
and eax, r9d
xor eax, r10d
add eax, edi
lea r8d, [rcx - 0x561c16fb]
add edx, eax
rol edx, 9
add edx, ecx
mov eax, edx
xor eax, ecx
and eax, r10d
xor eax, ecx
add eax, dword [rsp]
add r11d, eax
mov eax, edx
rol r11d, 0xe
add r11d, edx
xor eax, r11d
and eax, ecx
xor eax, edx
add eax, ebx
lea ebx, [r10 + 0x455a14ed]
add ebx, eax
mov eax, r11d
rol ebx, 0x14
add ebx, r11d
xor eax, ebx
and eax, edx
xor eax, r11d
add eax, r14d
add r8d, eax
lea r9d, [rdx - 0x3105c08]
rol r8d, 5
mov eax, ebx
add r8d, ebx
xor eax, r8d
and eax, r11d
xor eax, ebx
add eax, dword [rsp + 0x10]
add r9d, eax
rol r9d, 9
add r9d, r8d
mov r10d, r9d
mov ecx, r9d
xor r10d, r8d
and r10d, ebx
xor r10d, r8d
add r10d, 0x676f02d9
add r10d, r12d
add r10d, r11d
rol r10d, 0xe
add r10d, r9d
xor ecx, r10d
mov eax, r10d
mov edx, ecx
and edx, r8d
xor edx, r9d
add edx, 0x8d2a4c8a
add edx, ebp
add edx, ebx
rol edx, 0x14
add edx, r10d
xor eax, edx
xor ecx, edx
add ecx, 0xfffa3942
add ecx, dword [rsp + 0x18]
add r8d, ecx
lea r11d, [rdx - 0x21ac7f4]
rol r8d, 4
add r8d, edx
xor eax, r8d
add eax, 0x8771f681
add eax, dword [rsp + 0x28]
add r9d, eax
rol r9d, 0xb
add r9d, r8d
mov eax, r9d
mov ecx, r9d
xor eax, edx
lea edx, [r8 - 0x5b4115bc]
xor eax, r8d
add eax, 0x6d9d6122
add eax, r13d
add r10d, eax
rol r10d, 0x10
add r10d, r9d
xor ecx, r10d
mov eax, ecx
xor eax, r8d
lea r8d, [r9 + 0x4bdecfa9]
add eax, edi
lea r9d, [r10 - 0x944b4a0]
add r11d, eax
mov eax, r10d
rol r11d, 0x17
add r11d, r10d
xor eax, r11d
xor ecx, r11d
add ecx, dword [rsp + 4]
add edx, ecx
rol edx, 4
add edx, r11d
xor eax, edx
add eax, dword [rsp + 0xc]
add r8d, eax
rol r8d, 0xb
add r8d, edx
mov eax, r8d
xor eax, r11d
xor eax, edx
add eax, r12d
add r9d, eax
lea r10d, [r11 - 0x41404390]
rol r9d, 0x10
lea r11d, [rdx + 0x289b7ec6]
add r9d, r8d
mov ecx, r8d
xor ecx, r9d
mov eax, ecx
xor eax, edx
add eax, r15d
add r10d, eax
mov eax, r9d
rol r10d, 0x17
add r10d, r9d
xor eax, r10d
xor ecx, r10d
add ecx, r14d
add r11d, ecx
lea edx, [r10 + 0x4881d05]
rol r11d, 4
add r11d, r10d
xor eax, r11d
add eax, 0xeaa127fa
add eax, dword [rsp + 0x98]
add r8d, eax
rol r8d, 0xb
add r8d, r11d
mov eax, r8d
mov ecx, r8d
xor eax, r10d
xor eax, r11d
add eax, 0xd4ef3085
add eax, dword [rsp]
add r9d, eax
rol r9d, 0x10
add r9d, r8d
xor ecx, r9d
mov eax, ecx
xor eax, r11d
add eax, dword [rsp + 8]
add edx, eax
mov eax, r9d
rol edx, 0x17
add edx, r9d
xor eax, edx
xor ecx, edx
add ecx, dword [rsp + 0x14]
lea r10d, [rcx - 0x262b2fc7]
lea ecx, [r8 - 0x1924661b]
add r10d, r11d
lea r8d, [r9 + 0x1fa27cf8]
rol r10d, 4
add r10d, edx
lea r9d, [rdx - 0x3b53a99b]
xor eax, r10d
add eax, ebp
add ecx, eax
rol ecx, 0xb
add ecx, r10d
mov eax, ecx
xor eax, edx
lea edx, [r10 - 0xbd6ddbc]
xor eax, r10d
add eax, esi
add r8d, eax
mov eax, ecx
rol r8d, 0x10
add r8d, ecx
xor eax, r8d
xor eax, r10d
add eax, dword [rsp + 0x10]
add r9d, eax
mov eax, ecx
not eax
rol r9d, 0x17
add r9d, r8d
or eax, r9d
xor eax, r8d
add eax, dword [rsp + 0x98]
add edx, eax
rol edx, 6
mov eax, r8d
lea r10d, [rcx + 0x432aff97]
not eax
lea ecx, [r8 - 0x546bdc59]
add edx, r9d
lea r8d, [r9 - 0x36c5fc7]
or eax, edx
xor eax, r9d
add eax, r12d
add r10d, eax
mov eax, r9d
not eax
rol r10d, 0xa
add r10d, edx
lea r9d, [rdx + 0x655b59c3]
or eax, r10d
xor eax, edx
add eax, edi
add ecx, eax
mov eax, edx
not eax
rol ecx, 0xf
add ecx, r10d
lea edx, [r10 - 0x70f3336e]
or eax, ecx
xor eax, r10d
add eax, dword [rsp + 0x18]
add r8d, eax
mov eax, r10d
not eax
rol r8d, 0x15
add r8d, ecx
lea r10d, [rcx - 0x100b83]
or eax, r8d
xor eax, ecx
add eax, ebp
add r9d, eax
mov eax, ecx
not eax
rol r9d, 6
add r9d, r8d
lea ecx, [r8 - 0x7a7ba22f]
or eax, r9d
xor eax, r8d
add eax, dword [rsp]
add edx, eax
mov eax, r8d
not eax
rol edx, 0xa
add edx, r9d
or eax, edx
mov r8d, edx
xor eax, r9d
not r8d
add eax, r15d
add r10d, eax
lea r11d, [rdx - 0x1d31920]
rol r10d, 0xf
mov eax, r9d
not eax
add r10d, edx
or eax, r10d
xor eax, edx
add eax, dword [rsp + 4]
add ecx, eax
mov eax, r10d
not eax
rol ecx, 0x15
add ecx, r10d
or r8d, ecx
xor r8d, r10d
add r8d, 0x6fa87e4f
add r8d, dword [rsp + 0x28]
add r8d, r9d
rol r8d, 6
add r8d, ecx
or eax, r8d
xor eax, ecx
add eax, esi
add r11d, eax
rol r11d, 0xa
mov rsi, qword [rsp + 0x88]
lea edx, [r10 - 0x5cfebcec]
mov eax, ecx
lea r9d, [r8 - 0x8ac817e]
not eax
add r11d, r8d
or eax, r11d
mov r10d, r8d
xor eax, r8d
not r10d
add eax, dword [rsp + 8]
add edx, eax
lea r8d, [r11 - 0x42c50dcb]
rol edx, 0xf
mov eax, r11d
not eax
add edx, r11d
or r10d, edx
xor r10d, r11d
add r10d, 0x4e0811a1
add r10d, r14d
mov r14d, 1
add r10d, ecx
rol r10d, 0x15
add r10d, edx
or eax, r10d
xor eax, edx
add eax, dword [rsp + 0xc]
add r9d, eax
lea ecx, [r10 - 0x14792c6f]
rol r9d, 6
mov eax, edx
not eax
add r9d, r10d
or eax, r9d
xor eax, r10d
add eax, r13d
add r8d, eax
mov eax, r10d
not eax
rol r8d, 0xa
add r8d, r9d
or eax, r8d
xor eax, r9d
add eax, 0x2ad7d2bb
add eax, dword [rsp + 0x10]
add edx, eax
mov eax, r9d
not eax
rol edx, 0xf
add edx, r8d
or eax, edx
xor eax, r8d
add eax, dword [rsp + 0x14]
add ecx, eax
mov rax, qword [rsp + 0x80]
rol ecx, 0x15
add ecx, edx
add dword [rax], r9d
mov r9d, dword [rsp + 0x1c]
mov ebx, dword [rax]
add r9d, ecx
mov ecx, dword [rsp + 0x20]
mov r11d, r9d
add ecx, edx
mov dword [rax + 4], r9d
mov dword [rax + 8], ecx
mov r10d, ecx
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x24]
add ecx, r8d
mov dword [rsp + 0x1c], r9d
mov dword [rax + 0xc], ecx
mov r9d, ecx
mov rax, qword [rsp + 0x90]
mov dword [rsp + 0x24], ecx
test rax, rax
jne 0x140046d0b
add rsp, 0x38
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret