Function at 0x445450
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 eax, dword [rcx + 8]
mov esi, dword [rcx + 0xc]
mov edi, dword [rcx + 0x10]
mov qword [rsp + 0x60], rcx
mov rbx, rdx
mov dword [rsp + 0x70], r8d
mov dword [rsp + 0xc], eax
mov eax, dword [rcx + 0x14]
mov r12d, eax
mov r13d, dword [rbx]
mov ecx, dword [rsp + 0xc]
mov eax, edi
xor eax, r12d
mov r8d, esi
mov r10d, dword [rbx + 0xc]
and eax, esi
xor r8d, edi
mov r11d, dword [rbx + 0x30]
lea edx, [rcx + r13 - 0x28955b88]
xor eax, r12d
mov ecx, esi
lea r9d, [rsi + r10 - 0x3e423112]
mov r10d, dword [rbx + 0x10]
mov r15d, dword [rbx + 0x34]
add eax, edx
mov edx, dword [rbx + 4]
mov ebp, dword [rbx + 0x38]
rol eax, 7
add eax, esi
and r8d, eax
lea edx, [r12 + rdx - 0x173848aa]
xor ecx, eax
xor r8d, edi
add r8d, edx
mov edx, dword [rbx + 8]
rol r8d, 0xc
add r8d, eax
and ecx, r8d
lea edx, [rdi + rdx + 0x242070db]
xor ecx, esi
add ecx, edx
mov edx, eax
ror ecx, 0xf
xor edx, r8d
add ecx, r8d
and edx, ecx
xor edx, eax
add edx, r9d
lea r9d, [rax + r10 - 0xa83f051]
mov eax, r8d
ror edx, 0xa
xor eax, ecx
mov r10d, dword [rbx + 0x14]
add edx, ecx
and eax, edx
xor eax, r8d
add eax, r9d
lea r9d, [r8 + r10 + 0x4787c62a]
mov r8d, ecx
rol eax, 7
xor r8d, edx
mov r10d, dword [rbx + 0x18]
add eax, edx
and r8d, eax
xor r8d, ecx
add r8d, r9d
lea r9d, [rcx + r10 - 0x57cfb9ed]
mov ecx, edx
rol r8d, 0xc
xor ecx, eax
mov r10d, dword [rbx + 0x1c]
add r8d, eax
and ecx, r8d
xor ecx, edx
add ecx, r9d
lea r9d, [rdx + r10 - 0x2b96aff]
mov edx, eax
ror ecx, 0xf
xor edx, r8d
mov r10d, dword [rbx + 0x20]
add ecx, r8d
and edx, ecx
xor edx, eax
add edx, r9d
lea r9d, [rax + r10 + 0x698098d8]
mov eax, r8d
ror edx, 0xa
xor eax, ecx
mov r10d, dword [rbx + 0x24]
add edx, ecx
and eax, edx
xor eax, r8d
add eax, r9d
lea r9d, [r8 + r10 - 0x74bb0851]
mov r8d, ecx
rol eax, 7
xor r8d, edx
mov r10d, dword [rbx + 0x28]
add eax, edx
and r8d, eax
xor r8d, ecx
add r8d, r9d
lea r9d, [rcx + r10 - 0xa44f]
mov ecx, edx
rol r8d, 0xc
xor ecx, eax
add r8d, eax
and ecx, r8d
xor ecx, edx
add ecx, r9d
mov r9d, dword [rbx + 0x2c]
ror ecx, 0xf
add ecx, r8d
lea r9d, [rdx + r9 - 0x76a32842]
mov edx, eax
mov r14d, ecx
xor edx, r8d
and edx, ecx
xor edx, eax
add edx, r9d
lea r9d, [rax + r11 + 0x6b901122]
mov eax, r8d
ror edx, 0xa
xor eax, ecx
add edx, ecx
and eax, edx
xor r14d, edx
xor eax, r8d
lea r8d, [r8 + r15 - 0x2678e6d]
mov r15d, dword [rbx + 4]
add eax, r9d
mov r9d, dword [rbx + 0x3c]
rol eax, 7
add eax, edx
and r14d, eax
xor r14d, ecx
lea ecx, [rcx + rbp - 0x5986bc72]
add r14d, r8d
mov r8d, edx
rol r14d, 0xc
xor r8d, eax
add r14d, eax
and r8d, r14d
xor r8d, edx
add r8d, ecx
lea ecx, [rdx + r9 + 0x49b40821]
mov edx, eax
ror r8d, 0xf
xor edx, r14d
add r8d, r14d
and edx, r8d
xor edx, eax
lea eax, [r15 + rax - 0x9e1da9e]
mov r15d, dword [rbx + 0x2c]
add edx, ecx
mov ecx, r8d
ror edx, 0xa
add edx, r8d
xor ecx, edx
and ecx, r14d
xor ecx, r8d
add ecx, eax
mov eax, dword [rbx + 0x18]
rol ecx, 5
add ecx, edx
lea r14d, [rax + r14 - 0x3fbf4cc0]
mov eax, edx
xor eax, ecx
and eax, r8d
xor eax, edx
add eax, r14d
lea r14d, [r15 + r8 + 0x265e5a51]
mov r8d, ecx
rol eax, 9
mov r15d, dword [rbx + 0x14]
add eax, ecx
xor r8d, eax
and r8d, edx
xor r8d, ecx
add r8d, r14d
lea r14d, [r13 + rdx - 0x16493856]
mov edx, eax
rol r8d, 0xe
add r8d, eax
xor edx, r8d
and edx, ecx
xor edx, eax
add edx, r14d
lea r14d, [r15 + rcx - 0x29d0efa3]
mov ecx, r8d
ror edx, 0xc
mov r15d, dword [rbx + 0x10]
add edx, r8d
xor ecx, edx
and ecx, eax
xor ecx, r8d
add ecx, r14d
lea r14d, [r10 + rax + 0x2441453]
mov eax, edx
rol ecx, 5
add ecx, edx
xor eax, ecx
and eax, r8d
xor eax, edx
add eax, r14d
lea r14d, [r9 + r8 - 0x275e197f]
mov r8d, ecx
rol eax, 9
add eax, ecx
xor r8d, eax
and r8d, edx
xor r8d, ecx
add r8d, r14d
lea r14d, [r15 + rdx - 0x182c0438]
mov edx, eax
rol r8d, 0xe
mov r15d, dword [rbx + 0x24]
add r8d, eax
xor edx, r8d
and edx, ecx
xor edx, eax
add edx, r14d
lea r14d, [r15 + rcx + 0x21e1cde6]
mov ecx, r8d
ror edx, 0xc
mov r15d, dword [rbx + 0xc]
add edx, r8d
xor ecx, edx
and ecx, eax
xor ecx, r8d
add ecx, r14d
lea r14d, [rbp + rax - 0x3cc8f82a]
mov eax, edx
rol ecx, 5
add ecx, edx
xor eax, ecx
and eax, r8d
xor eax, edx
add eax, r14d
lea r14d, [r15 + r8 - 0xb2af279]
mov r8d, ecx
rol eax, 9
mov r15d, dword [rbx + 0x20]
add eax, ecx
xor r8d, eax
and r8d, edx
xor r8d, ecx
add r8d, r14d
lea r14d, [r15 + rdx + 0x455a14ed]
mov edx, eax
rol r8d, 0xe
mov r15d, dword [rbx + 0x34]
add r8d, eax
xor edx, r8d
and edx, ecx
xor edx, eax
add edx, r14d
lea r14d, [r15 + rcx - 0x561c16fb]
mov ecx, r8d
ror edx, 0xc
mov r15d, dword [rbx + 8]
add edx, r8d
xor ecx, edx
and ecx, eax
xor ecx, r8d
add ecx, r14d
lea r14d, [r15 + rax - 0x3105c08]
mov eax, edx
rol ecx, 5
mov r15d, dword [rbx + 0x1c]
add ecx, edx
xor eax, ecx
and eax, r8d
lea r8d, [r15 + r8 + 0x676f02d9]
mov r15d, ecx
xor eax, edx
add eax, r14d
mov r14d, dword [rbx + 0x14]
rol eax, 9
add eax, ecx
xor r15d, eax
and r15d, edx
lea edx, [r11 + rdx - 0x72d5b376]
xor r15d, ecx
add r15d, r8d
mov r8d, eax
rol r15d, 0xe
add r15d, eax
xor r8d, r15d
and r8d, ecx
lea ecx, [r14 + rcx - 0x5c6be]
mov r14d, eax
xor r8d, eax
add r8d, edx
mov edx, r15d
ror r8d, 0xc
add r8d, r15d
xor edx, r8d
xor r14d, edx
add ecx, r14d
mov r14d, dword [rbx + 0x20]
rol ecx, 4
add ecx, r8d
lea eax, [r14 + rax - 0x788e097f]
xor edx, ecx
mov r14d, ecx
add edx, eax
mov eax, dword [rbx + 0x2c]
rol edx, 0xb
add edx, ecx
xor r14d, edx
lea eax, [rax + r15 + 0x6d9d6122]
mov r15d, r8d
xor r15d, r14d
lea r8d, [rbp + r8 - 0x21ac7f4]
add eax, r15d
mov r15d, dword [rbx + 4]
rol eax, 0x10
add eax, edx
xor r14d, eax
lea ecx, [r15 + rcx - 0x5b4115bc]
mov r15d, edx
add r14d, r8d
mov r8d, eax
ror r14d, 9
add r14d, eax
xor r8d, r14d
xor r15d, r8d
add ecx, r15d
mov r15d, dword [rbx + 0x10]
rol ecx, 4
add ecx, r14d
lea edx, [r15 + rdx + 0x4bdecfa9]
xor r8d, ecx
mov r15d, dword [rbx + 0x1c]
add r8d, edx
mov edx, ecx
rol r8d, 0xb
lea eax, [r15 + rax - 0x944b4a0]
mov r15d, r14d
add r8d, ecx
lea r14d, [r10 + r14 - 0x41404390]
xor edx, r8d
xor r15d, edx
add eax, r15d
mov r15d, dword [rbx + 0x34]
rol eax, 0x10
add eax, r8d
xor edx, eax
lea ecx, [r15 + rcx + 0x289b7ec6]
mov r15d, r8d
add edx, r14d
mov r14d, eax
lea r8d, [r13 + r8 - 0x155ed806]
ror edx, 9
add edx, eax
xor r14d, edx
xor r15d, r14d
add ecx, r15d
mov r15d, dword [rbx + 0xc]
rol ecx, 4
add ecx, edx
xor r14d, ecx
lea eax, [r15 + rax - 0x2b10cf7b]
mov r15d, edx
add r14d, r8d
mov r8d, ecx
rol r14d, 0xb
add r14d, ecx
xor r8d, r14d
xor r15d, r8d
add eax, r15d
mov r15d, dword [rbx + 0x18]
rol eax, 0x10
add eax, r14d
lea edx, [r15 + rdx + 0x4881d05]
xor r8d, eax
mov r15d, dword [rbx + 0x24]
add r8d, edx
mov edx, eax
ror r8d, 9
lea ecx, [r15 + rcx - 0x262b2fc7]
mov r15d, r14d
add r8d, eax
lea r14d, [r11 + r14 - 0x1924661b]
lea eax, [r9 + rax + 0x1fa27cf8]
xor edx, r8d
xor r15d, edx
add ecx, r15d
mov r15d, r8d
rol ecx, 4
add ecx, r8d
xor edx, ecx
add edx, r14d
mov r14d, ecx
rol edx, 0xb
add edx, ecx
lea ecx, [r13 + rcx - 0xbd6ddbc]
xor r14d, edx
xor r15d, r14d
add eax, r15d
mov r15d, dword [rbx + 8]
rol eax, 0x10
add eax, edx
lea r8d, [r15 + r8 - 0x3b53a99b]
xor r14d, eax
mov r15d, dword [rbx + 0x1c]
add r14d, r8d
mov r8d, edx
ror r14d, 9
not r8d
lea edx, [r15 + rdx + 0x432aff97]
add r14d, eax
mov r15d, dword [rbx + 0x14]
or r8d, r14d
xor r8d, eax
add ecx, r8d
mov r8d, eax
lea eax, [rbp + rax - 0x546bdc59]
rol ecx, 6
not r8d
add ecx, r14d
or r8d, ecx
mov ebp, ecx
xor r8d, r14d
not ebp
add edx, r8d
mov r8d, r14d
rol edx, 0xa
not r8d
add edx, ecx
or r8d, edx
xor r8d, ecx
lea ecx, [r11 + rcx + 0x655b59c3]
mov r11d, edx
add eax, r8d
lea r8d, [r15 + r14 - 0x36c5fc7]
not r11d
rol eax, 0xf
mov r15d, dword [rbx + 0xc]
add eax, edx
or ebp, eax
xor ebp, edx
lea edx, [r15 + rdx - 0x70f3336e]
add r8d, ebp
ror r8d, 0xb
add r8d, eax
or r11d, r8d
xor r11d, eax
add ecx, r11d
mov r11d, eax
lea eax, [r10 + rax - 0x100b83]
rol ecx, 6
not r11d
mov r10d, r8d
add ecx, r8d
not r10d
or r11d, ecx
xor r11d, r8d
add edx, r11d
rol edx, 0xa
add edx, ecx
or r10d, edx
xor r10d, ecx
add eax, r10d
mov r10d, dword [rbx + 4]
rol eax, 0xf
add eax, edx
lea r8d, [r10 + r8 - 0x7a7ba22f]
mov r10d, ecx
not r10d
or r10d, eax
xor r10d, edx
add r8d, r10d
mov r10d, dword [rbx + 0x20]
ror r8d, 0xb
add r8d, eax
lea ecx, [r10 + rcx + 0x6fa87e4f]
mov r10d, edx
lea edx, [r9 + rdx - 0x1d31920]
not r10d
mov r9d, eax
or r10d, r8d
not r9d
xor r10d, eax
add ecx, r10d
mov r10d, dword [rbx + 0x18]
rol ecx, 6
add ecx, r8d
or r9d, ecx
lea eax, [r10 + rax - 0x5cfebcec]
mov r10d, dword [rbx + 0x34]
xor r9d, r8d
add edx, r9d
mov r9d, r8d
rol edx, 0xa
not r9d
add edx, ecx
or r9d, edx
xor r9d, ecx
add eax, r9d
lea r9d, [r10 + r8 + 0x4e0811a1]
mov r8d, ecx
rol eax, 0xf
not r8d
mov r10d, dword [rbx + 0x10]
add eax, edx
or r8d, eax
xor r8d, edx
add rbx, 0x40
add r8d, r9d
lea r9d, [r10 + rcx - 0x8ac817e]
mov ecx, edx
ror r8d, 0xb
not ecx
mov r10d, dword [rbx - 0x38]
add r8d, eax
or ecx, r8d
xor ecx, eax
add ecx, r9d
mov r9d, dword [rbx - 0x14]
rol ecx, 6
add ecx, r8d
add dword [rsp + 0xc], ecx
lea r9d, [r9 + rdx - 0x42c50dcb]
mov edx, eax
not edx
or edx, ecx
xor edx, r8d
add edx, r9d
lea r9d, [r10 + rax + 0x2ad7d2bb]
mov eax, r8d
rol edx, 0xa
not eax
add edx, ecx
or eax, edx
add r12d, edx
xor eax, ecx
add eax, r9d
mov r9d, dword [rbx - 0x1c]
rol eax, 0xf
add eax, edx
lea r9d, [r9 + r8 - 0x14792c6f]
mov r8d, ecx
add edi, eax
not r8d
or r8d, eax
xor r8d, edx
add r8d, r9d
ror r8d, 0xb
lea ecx, [rax + r8]
add esi, ecx
sub dword [rsp + 0x70], 0x40
jne 0x445480
mov rax, qword [rsp + 0x60]
mov ecx, dword [rsp + 0xc]
mov dword [rax + 0xc], esi
mov dword [rax + 8], ecx
mov dword [rax + 0x10], edi
mov dword [rax + 0x14], r12d
mov rax, rbx
add rsp, 0x18
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret