Function at 0x8e8830
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
mov ebx, dword [r8 + 0x10]
mov r15d, dword [r8 + 0x38]
mov edi, dword [r8]
mov eax, dword [r8 + 4]
mov r14d, dword [r8 + 8]
mov ebp, dword [r8 + 0xc]
mov r13d, dword [r8 + 0x18]
mov esi, dword [r8 + 0x1c]
mov r11d, dword [r8 + 0x20]
mov r12d, dword [r8 + 0x24]
mov qword [rsp + 0xb8], rdx
mov edx, dword [r8 + 0x2c]
mov r10d, dword [r8 + 0x28]
mov dword [rsp + 0x20], ebx
mov r9d, dword [r8 + 0x34]
mov ebx, dword [r8 + 0x14]
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x24], edx
mov r15d, dword [r8 + 0x3c]
mov edx, dword [r8 + 0x30]
mov dword [rsp + 0x2c], edi
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x34], r14d
mov dword [rsp + 0x38], ebp
mov dword [rsp + 0x3c], ebx
mov dword [rsp + 0x40], r13d
mov dword [rsp + 0x44], esi
mov dword [rsp + 0x48], r11d
mov dword [rsp + 0x4c], r12d
mov dword [rsp + 0x50], r10d
mov dword [rsp + 0x54], edx
mov dword [rsp + 0x58], r9d
mov dword [rsp + 0x5c], r15d
test ecx, ecx
je 0x8e8b30
mov dword [rsp + 8], ecx
mov ecx, dword [rsp + 0x24]
mov dword [rsp + 0x14], ebp
mov r8d, dword [rsp + 0x28]
mov dword [rsp + 0xc], ecx
mov ecx, dword [rsp + 0x20]
mov dword [rsp + 0x10], r14d
mov r14d, eax
mov eax, esi
mov esi, dword [rsp + 0xc]
nop
lea ebp, [rdi + rdx]
rol ebp, 7
xor ecx, ebp
lea ebp, [rcx + rdi]
rol ebp, 9
xor ebp, r11d
lea r11d, [rcx + rbp]
mov dword [rsp + 0x18], ebp
rol r11d, 0xd
xor r11d, edx
mov edx, ebp
lea ebp, [rsi + r15]
add edx, r11d
mov dword [rsp + 0xc], r11d
rol ebp, 7
xor ebp, dword [rsp + 0x14]
ror edx, 0xe
xor edi, edx
lea edx, [r14 + rbx]
rol edx, 7
xor r12d, edx
lea edx, [r12 + rbx]
rol edx, 9
xor edx, r9d
lea r11d, [r12 + rdx]
mov dword [rsp + 0x1c], edx
rol r11d, 0xd
xor r11d, r14d
lea r14d, [rdi + rbp]
add edx, r11d
ror edx, 0xe
xor ebx, edx
lea edx, [r13 + r10]
rol edx, 7
xor r8d, edx
lea edx, [r8 + r10]
rol edx, 9
xor edx, dword [rsp + 0x10]
lea r9d, [r8 + rdx]
rol r9d, 0xd
xor r13d, r9d
lea r9d, [rdx + r13]
ror r9d, 0xe
xor r10d, r9d
lea r9d, [rbp + r15]
rol r9d, 9
xor eax, r9d
lea r9d, [rbp + rax]
rol r9d, 0xd
xor r9d, esi
lea esi, [rax + r9]
ror esi, 0xe
rol r14d, 7
xor r14d, r11d
xor r15d, esi
lea r11d, [rdi + r14]
rol r11d, 9
xor r11d, edx
lea edx, [r14 + r11]
mov esi, r11d
mov dword [rsp + 0x10], r11d
rol edx, 0xd
xor edx, ebp
add esi, edx
mov dword [rsp + 0x14], edx
mov edx, esi
lea esi, [r12 + r10]
ror edx, 0xe
rol esi, 7
xor edi, edx
lea edx, [rcx + rbx]
xor esi, r9d
rol edx, 7
lea r11d, [r10 + rsi]
xor r13d, edx
rol r11d, 9
xor r11d, dword [rsp + 0x18]
lea edx, [rbx + r13]
rol edx, 9
xor eax, edx
lea edx, [r13 + rax]
rol edx, 0xd
xor ecx, edx
lea edx, [rax + rcx]
ror edx, 0xe
xor ebx, edx
lea edx, [rsi + r11]
rol edx, 0xd
xor r12d, edx
lea edx, [r11 + r12]
ror edx, 0xe
xor r10d, edx
lea edx, [r8 + r15]
rol edx, 7
xor edx, dword [rsp + 0xc]
lea r9d, [r15 + rdx]
rol r9d, 9
xor r9d, dword [rsp + 0x1c]
lea ebp, [rdx + r9]
rol ebp, 0xd
xor r8d, ebp
sub dword [rsp + 8], 2
lea ebp, [r9 + r8]
ror ebp, 0xe
xor r15d, ebp
mov ebp, dword [rsp + 8]
test ebp, ebp
jg 0x8e8900
mov dword [rsp + 0xc], esi
mov ebp, r14d
mov esi, eax
mov r14d, dword [rsp + 0x30]
mov rax, qword [rsp + 0xb8]
add r12d, dword [rsp + 0x4c]
add edi, dword [rsp + 0x2c]
add r14d, ebp
add ecx, dword [rsp + 0x20]
mov ebp, dword [rsp + 0x38]
mov dword [rax + 0x24], r12d
add ebp, dword [rsp + 0x14]
mov r12d, dword [rsp + 0x24]
mov dword [rax + 4], r14d
add ebx, dword [rsp + 0x3c]
mov r14d, dword [rsp + 0x34]
mov dword [rax], edi
add r14d, dword [rsp + 0x10]
add r13d, dword [rsp + 0x40]
mov dword [rax + 0xc], ebp
add esi, dword [rsp + 0x44]
add r11d, dword [rsp + 0x48]
mov dword [rax + 8], r14d
add r10d, dword [rsp + 0x50]
add r12d, dword [rsp + 0xc]
mov dword [rax + 0x10], ecx
add edx, dword [rsp + 0x54]
add r9d, dword [rsp + 0x58]
mov dword [rax + 0x14], ebx
mov dword [rax + 0x18], r13d
mov dword [rax + 0x1c], esi
mov dword [rax + 0x20], r11d
mov dword [rax + 0x28], r10d
mov dword [rax + 0x2c], r12d
mov dword [rax + 0x30], edx
mov dword [rax + 0x34], r9d
add r8d, dword [rsp + 0x28]
add r15d, dword [rsp + 0x5c]
mov dword [rax + 0x38], r8d
mov dword [rax + 0x3c], r15d
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [rsp + 0x24]
mov r15d, dword [rsp + 0x5c]
mov r8d, dword [rsp + 0x28]
mov r9d, dword [rsp + 0x58]
mov edx, dword [rsp + 0x54]
mov r10d, dword [rsp + 0x50]
mov dword [rsp + 0xc], eax
mov eax, dword [rsp + 0x38]
mov r12d, dword [rsp + 0x4c]
mov r11d, dword [rsp + 0x48]
mov esi, dword [rsp + 0x44]
mov r13d, dword [rsp + 0x40]
mov ebx, dword [rsp + 0x3c]
mov dword [rsp + 0x14], eax
mov eax, dword [rsp + 0x34]
mov ecx, dword [rsp + 0x20]
mov edi, dword [rsp + 0x2c]
mov dword [rsp + 0x10], eax
mov eax, dword [rsp + 0x30]
mov ebp, eax
jmp 0x8e8a7c