Function at 0x140034c20
Capabilities:
Encode data using xor

Disassembly:
test r8, r8
je 0x1400357ca
mov qword [rsp + 8], rcx
push rbx
push r12
push r14
push r15
sub rsp, 0x78
mov r15d, dword [rcx + 4]
mov rbx, rdx
mov edx, dword [rcx]
mov rax, r8
mov r12d, dword [rcx + 8]
mov r14d, dword [rcx + 0xc]
mov qword [rsp + 0x70], rbp
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x58], r13
movzx ecx, byte [rbx]
dec rax
movzx esi, byte [rbx + 4]
mov qword [rsp + 0xb0], rax
movzx eax, byte [rbx + 1]
shl eax, 8
or ecx, eax
movzx eax, byte [rbx + 2]
shl eax, 0x10
or ecx, eax
movzx eax, byte [rbx + 3]
shl eax, 0x18
or ecx, eax
movzx eax, byte [rbx + 5]
shl eax, 8
or esi, eax
mov dword [rsp + 0xa8], ecx
movzx eax, byte [rbx + 6]
shl eax, 0x10
or esi, eax
movzx eax, byte [rbx + 7]
shl eax, 0x18
or esi, eax
mov eax, r14d
xor eax, r12d
mov dword [rsp + 0x30], esi
and eax, r15d
xor eax, r14d
add eax, ecx
lea ecx, [rdx - 0x28955b88]
add ecx, eax
mov edx, 7
call fcn.14001b6e8
movzx ecx, byte [rbx + 9]
mov edx, 0xc
movzx ebp, byte [rbx + 8]
shl ecx, 8
or ebp, ecx
lea edi, [r15 + rax]
movzx ecx, byte [rbx + 0xa]
mov eax, r12d
shl ecx, 0x10
xor eax, r15d
or ebp, ecx
and eax, edi
movzx ecx, byte [rbx + 0xb]
xor eax, r12d
shl ecx, 0x18
add eax, esi
or ebp, ecx
lea ecx, [r14 - 0x173848aa]
add ecx, eax
mov dword [rsp + 0x48], ebp
call fcn.14001b6e8
movzx ecx, byte [rbx + 0xd]
mov edx, 0x11
movzx r14d, byte [rbx + 0xc]
shl ecx, 8
or r14d, ecx
lea esi, [rdi + rax]
movzx ecx, byte [rbx + 0xe]
mov eax, r15d
shl ecx, 0x10
xor eax, edi
or r14d, ecx
and eax, esi
movzx ecx, byte [rbx + 0xf]
xor eax, r15d
shl ecx, 0x18
add eax, ebp
or r14d, ecx
lea ecx, [r12 + 0x242070db]
add ecx, eax
mov dword [rsp + 0x28], r14d
call fcn.14001b6e8
movzx ecx, byte [rbx + 0x11]
movzx r12d, byte [rbx + 0x10]
shl ecx, 8
or r12d, ecx
lea ebp, [rsi + rax]
movzx ecx, byte [rbx + 0x12]
shl ecx, 0x10
add r14d, 0xc1bdceee
or r12d, ecx
mov edx, 0x16
movzx ecx, byte [rbx + 0x13]
shl ecx, 0x18
or r12d, ecx
mov ecx, esi
xor ecx, edi
mov dword [rsp + 0x40], r12d
and ecx, ebp
xor ecx, edi
add ecx, r14d
add ecx, r15d
call fcn.14001b6e8
movzx ecx, byte [rbx + 0x15]
mov edx, 7
movzx r15d, byte [rbx + 0x14]
shl ecx, 8
or r15d, ecx
lea r14d, [rax + rbp]
movzx ecx, byte [rbx + 0x16]
mov eax, esi
shl ecx, 0x10
xor eax, ebp
or r15d, ecx
and eax, r14d
movzx ecx, byte [rbx + 0x17]
xor eax, esi
shl ecx, 0x18
add eax, r12d
or r15d, ecx
lea ecx, [rdi - 0xa83f051]
add ecx, eax
mov dword [rsp + 0x20], r15d
call fcn.14001b6e8
movzx ecx, byte [rbx + 0x19]
add r15d, 0x4787c62a
movzx r12d, byte [rbx + 0x18]
mov edx, 0xc
shl ecx, 8
or r12d, ecx
lea edi, [r14 + rax]
movzx ecx, byte [rbx + 0x1a]
shl ecx, 0x10
or r12d, ecx
movzx ecx, byte [rbx + 0x1b]
shl ecx, 0x18
or r12d, ecx
mov ecx, ebp
xor ecx, r14d
mov dword [rsp + 0x38], r12d
and ecx, edi
xor ecx, ebp
add ecx, r15d
add ecx, esi
call fcn.14001b6e8
movzx ecx, byte [rbx + 0x1d]
mov edx, 0x11
movzx r15d, byte [rbx + 0x1c]
shl ecx, 8
or r15d, ecx
lea esi, [rdi + rax]
movzx ecx, byte [rbx + 0x1e]
shl ecx, 0x10
or r15d, ecx
movzx ecx, byte [rbx + 0x1f]
shl ecx, 0x18
or r15d, ecx
mov ecx, r14d
xor ecx, edi
mov dword [rsp + 0xb8], r15d
and ecx, esi
xor ecx, r14d
add ecx, 0xa8304613
add ecx, r12d
add ecx, ebp
call fcn.14001b6e8
movzx r12d, byte [rbx + 0x20]
movzx ecx, byte [rbx + 0x21]
lea ebp, [rsi + rax]
shl ecx, 8
mov edx, 0x16
or r12d, ecx
movzx ecx, byte [rbx + 0x22]
shl ecx, 0x10
or r12d, ecx
movzx ecx, byte [rbx + 0x23]
shl ecx, 0x18
or r12d, ecx
mov ecx, esi
xor ecx, edi
mov dword [rsp + 0x34], r12d
and ecx, ebp
xor ecx, edi
add ecx, 0xfd469501
add ecx, r15d
add ecx, r14d
call fcn.14001b6e8
movzx ecx, byte [rbx + 0x25]
mov edx, 7
movzx r13d, byte [rbx + 0x24]
shl ecx, 8
or r13d, ecx
lea r14d, [rax + rbp]
movzx ecx, byte [rbx + 0x26]
shl ecx, 0x10
or r13d, ecx
movzx ecx, byte [rbx + 0x27]
shl ecx, 0x18
or r13d, ecx
mov ecx, esi
xor ecx, ebp
mov dword [rsp + 0x4c], r13d
and ecx, r14d
xor ecx, esi
add ecx, 0x698098d8
add ecx, r12d
add ecx, edi
call fcn.14001b6e8
movzx ecx, byte [rbx + 0x29]
mov edx, 0xc
movzx edi, byte [rbx + 0x28]
shl ecx, 8
or edi, ecx
lea r15d, [r14 + rax]
movzx ecx, byte [rbx + 0x2a]
shl ecx, 0x10
or edi, ecx
movzx ecx, byte [rbx + 0x2b]
shl ecx, 0x18
or edi, ecx
mov ecx, ebp
xor ecx, r14d
mov dword [rsp + 0x2c], edi
and ecx, r15d
xor ecx, ebp
add ecx, 0x8b44f7af
add ecx, r13d
add ecx, esi
call fcn.14001b6e8
movzx ecx, byte [rbx + 0x2d]
mov edx, 0x11
movzx esi, byte [rbx + 0x2c]
shl ecx, 8
or esi, ecx
lea r12d, [r15 + rax]
movzx ecx, byte [rbx + 0x2e]
shl ecx, 0x10
or esi, ecx
movzx ecx, byte [rbx + 0x2f]
shl ecx, 0x18
or esi, ecx
mov ecx, r14d
xor ecx, r15d
mov dword [rsp + 0x44], esi
and ecx, r12d
xor ecx, r14d
add ecx, 0xffff5bb1
add ecx, edi
add ecx, ebp
call fcn.14001b6e8
movzx ecx, byte [rbx + 0x31]
lea edi, [r12 + rax]
movzx ebp, byte [rbx + 0x30]
mov eax, r12d
shl ecx, 8
xor eax, r15d
or ebp, ecx
and eax, edi
movzx ecx, byte [rbx + 0x32]
xor eax, r15d
shl ecx, 0x10
add eax, esi
or ebp, ecx
mov edx, 0x16
movzx ecx, byte [rbx + 0x33]
shl ecx, 0x18
or ebp, ecx
lea ecx, [r14 - 0x76a32842]
add ecx, eax
mov dword [rsp + 0x24], ebp
call fcn.14001b6e8
movzx ecx, byte [rbx + 0x35]
add ebp, 0x6b901122
movzx r14d, byte [rbx + 0x34]
mov edx, 7
shl ecx, 8
or r14d, ecx
lea esi, [rdi + rax]
movzx ecx, byte [rbx + 0x36]
shl ecx, 0x10
or r14d, ecx
movzx ecx, byte [rbx + 0x37]
shl ecx, 0x18
or r14d, ecx
mov ecx, r12d
xor ecx, edi
mov dword [rsp + 0x3c], r14d
and ecx, esi
xor ecx, r12d
add ecx, ebp
add ecx, r15d
call fcn.14001b6e8
movzx ecx, byte [rbx + 0x39]
mov edx, 0xc
movzx r13d, byte [rbx + 0x38]
shl ecx, 8
or r13d, ecx
lea ebp, [rsi + rax]
movzx ecx, byte [rbx + 0x3a]
mov eax, edi
shl ecx, 0x10
xor eax, esi
or r13d, ecx
and eax, ebp
movzx ecx, byte [rbx + 0x3b]
xor eax, edi
shl ecx, 0x18
add eax, r14d
or r13d, ecx
lea ecx, [r12 - 0x2678e6d]
add ecx, eax
call fcn.14001b6e8
movzx ecx, byte [rbx + 0x3d]
movzx r12d, byte [rbx + 0x3c]
lea rbx, [rbx + 0x40]
shl ecx, 8
or r12d, ecx
lea r14d, [rax + rbp]
movzx ecx, byte [rbx - 2]
mov eax, esi
shl ecx, 0x10
xor eax, ebp
or r12d, ecx
and eax, r14d
movzx ecx, byte [rbx - 1]
xor eax, esi
shl ecx, 0x18
add eax, r13d
or r12d, ecx
lea ecx, [rdi - 0x5986bc72]
add ecx, eax
mov edx, 0x11
call fcn.14001b6e8
mov ecx, r14d
add esi, 0x49b40821
xor ecx, ebp
mov edx, 0x16
lea edi, [r14 + rax]
and ecx, edi
xor ecx, ebp
add ecx, r12d
add ecx, esi
call fcn.14001b6e8
mov ecx, edi
add ebp, 0xf61e2562
mov edx, 5
lea esi, [rdi + rax]
xor ecx, esi
and ecx, r14d
xor ecx, edi
add ecx, dword [rsp + 0x30]
add ecx, ebp
call fcn.14001b6e8
mov ecx, esi
add r14d, 0xc040b340
mov edx, 9
lea ebp, [rsi + rax]
xor ecx, ebp
and ecx, edi
xor ecx, esi
add ecx, dword [rsp + 0x38]
add ecx, r14d
call fcn.14001b6e8
add edi, 0x265e5a51
mov edx, 0xe
lea r14d, [rax + rbp]
mov ecx, r14d
xor ecx, ebp
and ecx, esi
xor ecx, ebp
add ecx, dword [rsp + 0x44]
add ecx, edi
call fcn.14001b6e8
mov ecx, r14d
add esi, 0xe9b6c7aa
mov edx, 0x14
lea edi, [r14 + rax]
xor ecx, edi
and ecx, ebp
xor ecx, r14d
add ecx, dword [rsp + 0xa8]
add ecx, esi
call fcn.14001b6e8
mov ecx, edi
add ebp, 0xd62f105d
mov edx, 5
lea esi, [rdi + rax]
xor ecx, esi
and ecx, r14d
xor ecx, edi
add ecx, dword [rsp + 0x20]
add ecx, ebp
call fcn.14001b6e8
mov ecx, esi
add r14d, 0x2441453
mov edx, 9
lea ebp, [rsi + rax]
xor ecx, ebp
and ecx, edi
xor ecx, esi
add ecx, dword [rsp + 0x2c]
add ecx, r14d
call fcn.14001b6e8
add edi, 0xd8a1e681
mov edx, 0xe
lea r14d, [rax + rbp]
mov ecx, r14d
xor ecx, ebp
and ecx, esi
xor ecx, ebp
add ecx, r12d
add ecx, edi
call fcn.14001b6e8
mov ecx, r14d
add esi, 0xe7d3fbc8
mov edx, 0x14
lea edi, [r14 + rax]
xor ecx, edi
and ecx, ebp
xor ecx, r14d
add ecx, dword [rsp + 0x40]
add ecx, esi
call fcn.14001b6e8
mov ecx, edi
add ebp, 0x21e1cde6
mov edx, 5
lea esi, [rdi + rax]
xor ecx, esi
and ecx, r14d
xor ecx, edi
add ecx, dword [rsp + 0x4c]
add ecx, ebp
call fcn.14001b6e8
mov ecx, esi
add r14d, 0xc33707d6
mov edx, 9
lea ebp, [rsi + rax]
xor ecx, ebp
and ecx, edi
xor ecx, esi
add ecx, r13d
add ecx, r14d
call fcn.14001b6e8
add edi, 0xf4d50d87
mov edx, 0xe
lea r14d, [rax + rbp]
mov ecx, r14d
xor ecx, ebp
and ecx, esi
xor ecx, ebp
add ecx, dword [rsp + 0x28]
add ecx, edi
call fcn.14001b6e8
mov ecx, r14d
add esi, 0x455a14ed
mov edx, 0x14
lea edi, [r14 + rax]
xor ecx, edi
and ecx, ebp
xor ecx, r14d
add ecx, dword [rsp + 0x34]
add ecx, esi
call fcn.14001b6e8
mov ecx, edi
add ebp, 0xa9e3e905
mov edx, 5
lea esi, [rdi + rax]
xor ecx, esi
and ecx, r14d
xor ecx, edi
add ecx, dword [rsp + 0x3c]
add ecx, ebp
call fcn.14001b6e8
mov ecx, esi
add r14d, 0xfcefa3f8
mov edx, 9
lea ebp, [rsi + rax]
xor ecx, ebp
and ecx, edi
xor ecx, esi
add ecx, dword [rsp + 0x48]
add ecx, r14d
call fcn.14001b6e8
add edi, 0x676f02d9
mov edx, 0xe
lea r14d, [rax + rbp]
mov ecx, r14d
xor ecx, ebp
and ecx, esi
xor ecx, ebp
add ecx, dword [rsp + 0xb8]
add ecx, edi
call fcn.14001b6e8
lea r15d, [r14 + rax]
mov edi, r14d
xor edi, r15d
add esi, 0x8d2a4c8a
mov ecx, edi
mov edx, 0x14
and ecx, ebp
xor ecx, r14d
add ecx, dword [rsp + 0x24]
add ecx, esi
call fcn.14001b6e8
lea ecx, [rbp - 0x5c6be]
mov edx, 4
lea esi, [r15 + rax]
xor edi, esi
add edi, dword [rsp + 0x20]
add ecx, edi
call fcn.14001b6e8
mov ecx, r15d
add r14d, 0x8771f681
xor ecx, esi
mov edx, 0xb
lea ebp, [rsi + rax]
xor ecx, ebp
add ecx, dword [rsp + 0x34]
add ecx, r14d
call fcn.14001b6e8
add r15d, 0x6d9d6122
mov edx, 0x10
lea r14d, [rax + rbp]
mov ecx, r14d
xor ecx, esi
xor ecx, ebp
add ecx, dword [rsp + 0x44]
add ecx, r15d
call fcn.14001b6e8
mov edi, r14d
add esi, 0xfde5380c
mov edx, 0x17
lea r15d, [r14 + rax]
xor edi, r15d
mov ecx, edi
xor ecx, ebp
add ecx, r13d
add ecx, esi
call fcn.14001b6e8
lea ecx, [rbp - 0x5b4115bc]
mov edx, 4
lea esi, [r15 + rax]
xor edi, esi
add edi, dword [rsp + 0x30]
add ecx, edi
call fcn.14001b6e8
mov ecx, r15d
add r14d, 0x4bdecfa9
xor ecx, esi
mov edx, 0xb
lea ebp, [rsi + rax]
xor ecx, ebp
add ecx, dword [rsp + 0x40]
add ecx, r14d
call fcn.14001b6e8
add r15d, 0xf6bb4b60
mov edx, 0x10
lea r14d, [rax + rbp]
mov ecx, r14d
xor ecx, esi
xor ecx, ebp
add ecx, dword [rsp + 0xb8]
add ecx, r15d
call fcn.14001b6e8
add esi, 0xbebfbc70
mov edi, r14d
mov edx, 0x17
lea r15d, [r14 + rax]
xor edi, r15d
mov ecx, edi
xor ecx, ebp
add ecx, dword [rsp + 0x2c]
add ecx, esi
call fcn.14001b6e8
lea esi, [r15 + rax]
mov edx, 4
lea ecx, [rbp + 0x289b7ec6]
xor edi, esi
add edi, dword [rsp + 0x3c]
add ecx, edi
call fcn.14001b6e8
mov ecx, r15d
add r14d, 0xeaa127fa
xor ecx, esi
mov edx, 0xb
lea ebp, [rsi + rax]
xor ecx, ebp
add ecx, dword [rsp + 0xa8]
add ecx, r14d
call fcn.14001b6e8
add r15d, 0xd4ef3085
mov edx, 0x10
lea r14d, [rax + rbp]
mov ecx, r14d
xor ecx, esi
xor ecx, ebp
add ecx, dword [rsp + 0x28]
add ecx, r15d
call fcn.14001b6e8
mov edi, r14d
add esi, 0x4881d05
mov edx, 0x17
lea r15d, [r14 + rax]
xor edi, r15d
mov ecx, edi
xor ecx, ebp
add ecx, dword [rsp + 0x38]
add ecx, esi
call fcn.14001b6e8
lea ecx, [rbp - 0x262b2fc7]
mov edx, 4
lea esi, [r15 + rax]
xor edi, esi
add edi, dword [rsp + 0x4c]
add ecx, edi
call fcn.14001b6e8
mov ecx, r15d
add r14d, 0xe6db99e5
xor ecx, esi
mov edx, 0xb
lea edi, [rsi + rax]
xor ecx, edi
add ecx, dword [rsp + 0x24]
add ecx, r14d
call fcn.14001b6e8
mov edx, 0x10
lea ebp, [rdi + rax]
mov ecx, ebp
xor ecx, esi
xor ecx, edi
add ecx, 0x1fa27cf8
add ecx, r12d
add ecx, r15d
call fcn.14001b6e8
mov ecx, ebp
add esi, 0xc4ac5665
mov edx, 0x17
lea r14d, [rax + rbp]
xor ecx, r14d
xor ecx, edi
add ecx, dword [rsp + 0x48]
add ecx, esi
call fcn.14001b6e8
mov ecx, ebp
add edi, 0xf4292244
not ecx
mov edx, 6
lea esi, [r14 + rax]
or ecx, esi
xor ecx, r14d
add ecx, dword [rsp + 0xa8]
add ecx, edi
call fcn.14001b6e8
mov ecx, r14d
lea edi, [rsi + rax]
not ecx
add ebp, 0x432aff97
or ecx, edi
mov edx, 0xa
xor ecx, esi
add ecx, dword [rsp + 0xb8]
add ecx, ebp
call fcn.14001b6e8
mov ecx, esi
add r14d, 0xab9423a7
not ecx
mov edx, 0xf
lea ebp, [rdi + rax]
or ecx, ebp
xor ecx, edi
add ecx, r13d
add ecx, r14d
call fcn.14001b6e8
mov ecx, edi
add esi, 0xfc93a039
not ecx
mov edx, 0x15
lea r14d, [rax + rbp]
or ecx, r14d
xor ecx, ebp
add ecx, dword [rsp + 0x20]
add ecx, esi
call fcn.14001b6e8
mov ecx, ebp
add edi, 0x655b59c3
not ecx
mov edx, 6
lea esi, [r14 + rax]
or ecx, esi
xor ecx, r14d
add ecx, dword [rsp + 0x24]
add ecx, edi
call fcn.14001b6e8
mov ecx, r14d
add ebp, 0x8f0ccc92
not ecx
mov edx, 0xa
lea edi, [rsi + rax]
or ecx, edi
xor ecx, esi
add ecx, dword [rsp + 0x28]
add ecx, ebp
call fcn.14001b6e8
mov ecx, esi
add r14d, 0xffeff47d
not ecx
mov edx, 0xf
lea ebp, [rdi + rax]
or ecx, ebp
xor ecx, edi
add ecx, dword [rsp + 0x2c]
add ecx, r14d
call fcn.14001b6e8
mov ecx, edi
add esi, 0x85845dd1
not ecx
mov edx, 0x15
lea r14d, [rax + rbp]
or ecx, r14d
xor ecx, ebp
add ecx, dword [rsp + 0x30]
add ecx, esi
call fcn.14001b6e8
mov ecx, ebp
add edi, 0x6fa87e4f
not ecx
mov edx, 6
lea esi, [r14 + rax]
or ecx, esi
xor ecx, r14d
add ecx, dword [rsp + 0x34]
add ecx, edi
call fcn.14001b6e8
mov ecx, r14d
not ecx
lea edi, [rsi + rax]
or ecx, edi
add r12d, 0xfe2ce6e0
xor ecx, esi
mov edx, 0xa
add ecx, r12d
add ecx, ebp
call fcn.14001b6e8
mov ecx, esi
add r14d, 0xa3014314
not ecx
mov edx, 0xf
lea r15d, [rdi + rax]
or ecx, r15d
xor ecx, edi
add ecx, dword [rsp + 0x38]
add ecx, r14d
call fcn.14001b6e8
mov ecx, edi
add esi, 0x4e0811a1
not ecx
mov edx, 0x15
lea r14d, [r15 + rax]
or ecx, r14d
xor ecx, r15d
add ecx, dword [rsp + 0x3c]
add ecx, esi
call fcn.14001b6e8
mov ecx, r15d
add edi, 0xf7537e82
not ecx
mov edx, 6
lea r12d, [r14 + rax]
or ecx, r12d
xor ecx, r14d
add ecx, dword [rsp + 0x40]
add ecx, edi
call fcn.14001b6e8
mov ecx, r14d
add r15d, 0xbd3af235
not ecx
mov edx, 0xa
lea ebp, [r12 + rax]
or ecx, ebp
xor ecx, r12d
add ecx, dword [rsp + 0x44]
add ecx, r15d
call fcn.14001b6e8
mov ecx, r12d
add r14d, 0x2ad7d2bb
not ecx
mov edx, 0xf
lea esi, [rax + rbp]
or ecx, esi
xor ecx, ebp
add ecx, dword [rsp + 0x48]
add ecx, r14d
call fcn.14001b6e8
mov ecx, ebp
add r12d, 0xeb86d391
not ecx
mov edx, 0x15
lea edi, [rsi + rax]
or ecx, edi
xor ecx, esi
add ecx, dword [rsp + 0x4c]
add ecx, r12d
call fcn.14001b6e8
mov rcx, qword [rsp + 0xa0]
add eax, edi
add dword [rcx + 4], eax
add dword [rcx], ebp
add dword [rcx + 8], edi
add dword [rcx + 0xc], esi
mov rax, qword [rsp + 0xb0]
mov edx, dword [rcx]
mov r15d, dword [rcx + 4]
mov r12d, dword [rcx + 8]
mov r14d, dword [rcx + 0xc]
test rax, rax
jne 0x140034c61
mov r13, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
add rsp, 0x78
pop r15
pop r14
pop r12
pop rbx
ret