Function at 0x140003560
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
mov eax, dword [rdx + 0xc]
mov ebp, dword [rdx]
mov edi, dword [rdx + 4]
mov esi, dword [rdx + 8]
lea r11, [rsp + 0x30]
mov r8, rcx
mov r10, rdx
mov edx, 0x10
mov rcx, r11
mov dword [rsp + 0x2c], eax
call fcn.140002cbc
mov r9, r11
mov ecx, dword [rsp + 0x2c]
mov eax, esi
lea r11, [0x140067200]
mov edx, edi
mov r8d, ebp
lea r13, [r11 + 0x40]
mov rbx, r11
mov r12d, eax
mov r14d, dword [rbx]
add r14d, dword [r9]
xor r12d, ecx
and r12d, edx
xor r12d, ecx
add r12d, r14d
add r8d, r12d
mov r12d, dword [rbx + 4]
add r12d, dword [r9 + 4]
add ecx, r12d
rol r8d, 7
mov r12d, edx
add r8d, edx
xor r12d, eax
and r12d, r8d
xor r12d, eax
add ecx, r12d
mov r12d, dword [rbx + 8]
add r12d, dword [r9 + 8]
add eax, r12d
rol ecx, 0xc
mov r12d, r8d
add ecx, r8d
xor r12d, edx
and r12d, ecx
xor r12d, edx
add eax, r12d
mov r12d, dword [rbx + 0xc]
add r12d, dword [r9 + 0xc]
add edx, r12d
ror eax, 0xf
mov r12d, r8d
add eax, ecx
xor r12d, ecx
and r12d, eax
xor r12d, r8d
add edx, r12d
ror edx, 0xa
add edx, eax
add r9, 0x10
add rbx, 0x10
cmp r13, rbx
jne 0x1400035b3
lea rbx, [0x1400671c0]
lea r12, [0x140067200]
mov r14, rbx
mov r9d, edx
movzx r15d, byte [r14]
add r14, 4
xor r9d, eax
and r9d, ecx
add ecx, dword [r12 + 0x44]
xor r9d, eax
add r9d, dword [r12 + 0x40]
add r9d, dword [rsp + r15*4 + 0x30]
add r9d, r8d
rol r9d, 5
lea r8d, [r9 + rdx]
mov r9d, r8d
xor r9d, edx
and r9d, eax
add eax, dword [r12 + 0x48]
xor r9d, edx
add ecx, r9d
movzx r9d, byte [r14 - 3]
add ecx, dword [rsp + r9*4 + 0x30]
movzx r9d, byte [r14 - 2]
rol ecx, 9
add ecx, r8d
add eax, dword [rsp + r9*4 + 0x30]
mov r9d, r8d
xor r9d, ecx
and r9d, edx
add edx, dword [r12 + 0x4c]
xor r9d, r8d
add eax, r9d
movzx r9d, byte [r14 - 1]
rol eax, 0xe
add eax, ecx
add edx, dword [rsp + r9*4 + 0x30]
mov r9d, ecx
xor r9d, eax
and r9d, r8d
xor r9d, ecx
add edx, r9d
ror edx, 0xc
add edx, eax
add r12, 0x10
cmp r13, r12
jne 0x140003652
lea r12, [0x140067200]
lea r14, [0x1400671c0]
mov r15d, edx
add r12, 0x10
add r14, 4
xor r15d, eax
add eax, dword [r12 + 0x78]
mov dword [rsp + 0x28], r15d
mov r9d, r15d
movzx r15d, byte [r14 + 0xc]
xor r9d, ecx
add r9d, dword [r12 + 0x70]
add r9d, dword [rsp + r15*4 + 0x30]
add r9d, r8d
rol r9d, 4
lea r8d, [r9 + rdx]
mov r9d, dword [rsp + 0x28]
xor r9d, r8d
add r9d, dword [r12 + 0x74]
add ecx, r9d
movzx r9d, byte [r14 + 0xd]
add ecx, dword [rsp + r9*4 + 0x30]
movzx r9d, byte [r14 + 0xe]
rol ecx, 0xb
add eax, dword [rsp + r9*4 + 0x30]
mov r9d, r8d
add ecx, r8d
xor r9d, edx
add edx, dword [r12 + 0x7c]
xor r9d, ecx
add eax, r9d
movzx r9d, byte [r14 + 0xf]
rol eax, 0x10
add edx, dword [rsp + r9*4 + 0x30]
mov r9d, r8d
add eax, ecx
xor r9d, ecx
xor r9d, eax
add edx, r9d
ror edx, 9
add edx, eax
cmp r13, r12
jne 0x140003700
mov r9d, ecx
movzx r12d, byte [rbx + 0x20]
add r11, 0x10
add rbx, 4
not r9d
add ecx, dword [r11 + 0xb4]
or r9d, edx
xor r9d, eax
add r9d, dword [r11 + 0xb0]
add r9d, dword [rsp + r12*4 + 0x30]
add r8d, r9d
mov r9d, eax
add eax, dword [r11 + 0xb8]
rol r8d, 6
not r9d
add r8d, edx
or r9d, r8d
xor r9d, edx
add ecx, r9d
movzx r9d, byte [rbx + 0x1d]
add ecx, dword [rsp + r9*4 + 0x30]
movzx r9d, byte [rbx + 0x1e]
rol ecx, 0xa
add eax, dword [rsp + r9*4 + 0x30]
mov r9d, edx
add ecx, r8d
add edx, dword [r11 + 0xbc]
not r9d
or r9d, ecx
xor r9d, r8d
add eax, r9d
movzx r9d, byte [rbx + 0x1f]
rol eax, 0xf
add edx, dword [rsp + r9*4 + 0x30]
mov r9d, r8d
add eax, ecx
not r9d
or r9d, eax
xor r9d, ecx
add edx, r9d
ror edx, 0xb
add edx, eax
cmp r13, r11
jne 0x14000379c
add esi, eax
mov eax, dword [rsp + 0x2c]
add ebp, r8d
add edi, edx
mov dword [r10], ebp
add eax, ecx
mov dword [r10 + 4], edi
mov dword [r10 + 8], esi
mov dword [r10 + 0xc], eax
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret