Function at 0x487100
Capabilities:
Encode data using xor

Disassembly:
mov byte [rsp + 0x20], r9b
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x178
mov r10d, dword [rcx]
mov r11d, dword [rcx + 4]
mov edi, dword [rcx + 8]
mov esi, dword [rcx + 0xc]
mov r9d, dword [rcx + 0x10]
lea r12, [rsp + 0x34]
lea r14, [rsp + 0x38]
sub r12, rdx
mov r13, rdx
lea r15, [rsp + 0x38]
lea r8, [rdx + 8]
mov ebp, 3
sub r14, rdx
mov edx, dword [r8 - 8]
mov ecx, esi
mov eax, r10d
xor ecx, edi
rol eax, 5
mov dword [r15 - 8], edx
and ecx, r11d
add eax, edx
mov edx, dword [r8 - 4]
xor ecx, esi
mov dword [r15 - 4], edx
add ecx, eax
rol r11d, 0x1e
lea r9d, [r9 + rcx + 0x5a827999]
mov ecx, edi
xor ecx, r11d
mov eax, r9d
and ecx, r10d
rol eax, 5
xor ecx, edi
add eax, edx
mov edx, dword [r8]
add ecx, eax
rol r10d, 0x1e
mov dword [r15], edx
lea esi, [rsi + rcx + 0x5a827999]
mov ecx, r11d
add r15, 0x14
xor ecx, r10d
mov eax, esi
and ecx, r9d
rol eax, 5
xor ecx, r11d
add eax, edx
mov edx, dword [r8 + 4]
add ecx, eax
rol r9d, 0x1e
mov dword [r12 + r8], edx
lea edi, [rdi + rcx + 0x5a827999]
mov ecx, r9d
xor ecx, r10d
mov eax, edi
and ecx, esi
rol eax, 5
xor ecx, r10d
add eax, edx
mov edx, dword [r8 + 8]
add ecx, eax
rol esi, 0x1e
mov dword [r14 + r8], edx
lea r11d, [r11 + rcx + 0x5a827999]
mov ecx, r9d
add r8, 0x14
xor ecx, esi
mov eax, r11d
and ecx, edi
rol eax, 5
add eax, edx
xor ecx, r9d
add ecx, eax
rol edi, 0x1e
dec rbp
lea r10d, [r10 + rcx + 0x5a827999]
jne 0x487159
mov r8d, dword [r13 + 0x3c]
mov edx, dword [rsp + 0x34]
mov rbp, qword [rsp + 0x1d0]
xor edx, dword [rsp + 0x3c]
mov ecx, esi
mov eax, r10d
xor edx, dword [rsp + 0x54]
xor ecx, edi
rol eax, 5
xor edx, dword [rsp + 0x68]
and ecx, r11d
add eax, r8d
xor ecx, esi
mov dword [rsp + 0x6c], r8d
mov qword [rsp + 0x20], 4
add ecx, eax
rol r11d, 0x1e
lea r12d, [r9 + rcx + 0x5a827999]
mov r9d, dword [rsp + 0x30]
mov ecx, edi
xor r9d, dword [rsp + 0x38]
xor ecx, r11d
mov eax, r12d
xor r9d, dword [rsp + 0x50]
and ecx, r10d
xor r9d, dword [rsp + 0x64]
xor ecx, edi
rol r9d, 1
rol eax, 5
add eax, r9d
mov dword [rsp + 0x70], r9d
add ecx, eax
rol r10d, 0x1e
rol edx, 1
lea esi, [rsi + rcx + 0x5a827999]
mov dword [rsp + 0x74], edx
mov ecx, r11d
xor ecx, r10d
mov eax, esi
and ecx, r12d
rol eax, 5
add eax, edx
mov edx, dword [rsp + 0x40]
xor ecx, r11d
xor edx, dword [rsp + 0x58]
add ecx, eax
rol r12d, 0x1e
xor edx, dword [rsp + 0x38]
lea edi, [rdi + rcx + 0x5a827999]
mov ecx, r12d
xor ecx, r10d
xor edx, r8d
mov eax, edi
rol edx, 1
and ecx, esi
rol eax, 5
add eax, edx
xor ecx, r10d
mov dword [rsp + 0x78], edx
mov edx, dword [rsp + 0x44]
add ecx, eax
rol esi, 0x1e
xor edx, dword [rsp + 0x5c]
lea r14d, [r11 + rcx + 0x5a827999]
mov ecx, r12d
xor edx, dword [rsp + 0x3c]
xor ecx, esi
mov eax, r14d
xor edx, r9d
and ecx, edi
lea r11, [rsp + 0x60]
rol edx, 1
rol eax, 5
xor ecx, r12d
add eax, edx
mov dword [rsp + 0x7c], edx
add ecx, eax
rol edi, 0x1e
lea r15d, [r10 + rcx + 0x5a827999]
mov r9d, dword [r11 - 0x20]
mov r8d, dword [r11 - 0x1c]
mov edx, dword [r11 + 0x1c]
xor edx, dword [r11 + 8]
xor r9d, dword [r11]
xor r8d, dword [r11 + 0x18]
xor edx, dword [r11 - 0x10]
xor r9d, dword [r11 - 0x18]
xor r8d, dword [r11 + 4]
xor edx, dword [r11 - 0x18]
xor r9d, dword [r11 + 0x14]
xor r8d, dword [r11 - 0x14]
rol r9d, 1
mov eax, r15d
mov ecx, esi
xor ecx, edi
rol eax, 5
mov dword [r11 + 0x20], r9d
xor ecx, r14d
add eax, r9d
add r11, 0x14
add ecx, eax
rol r14d, 0x1e
rol r8d, 1
lea r12d, [r12 + rcx + 0x6ed9eba1]
mov ecx, edi
mov dword [r11 + 0x10], r8d
xor ecx, r14d
mov eax, r12d
xor ecx, r15d
rol eax, 5
add eax, r8d
add ecx, eax
rol r15d, 0x1e
rol edx, 1
lea esi, [rsi + rcx + 0x6ed9eba1]
mov dword [r11 + 0x14], edx
mov ecx, r12d
xor ecx, r14d
mov eax, esi
xor ecx, r15d
rol eax, 5
add eax, edx
mov edx, dword [r11 - 0x20]
xor edx, dword [r11 - 8]
add ecx, eax
rol r12d, 0x1e
xor edx, r9d
lea edi, [rdi + rcx + 0x6ed9eba1]
mov ecx, r12d
xor edx, dword [r11 - 0x28]
xor ecx, esi
mov eax, edi
rol edx, 1
xor ecx, r15d
rol eax, 5
add eax, edx
mov dword [r11 + 0x18], edx
mov edx, dword [r11 - 4]
xor edx, dword [r11 - 0x1c]
add ecx, eax
rol esi, 0x1e
xor edx, r8d
lea r14d, [r14 + rcx + 0x6ed9eba1]
mov ecx, r12d
xor edx, dword [r11 - 0x24]
xor ecx, esi
mov eax, r14d
rol edx, 1
rol eax, 5
xor ecx, edi
add eax, edx
mov dword [r11 + 0x1c], edx
add ecx, eax
rol edi, 0x1e
dec qword [rsp + 0x20]
lea r15d, [r15 + rcx + 0x6ed9eba1]
jne 0x487345
lea rbx, [rsp + 0xb0]
mov r13d, 4
mov r10d, dword [rbx - 0x20]
mov r9d, dword [rbx - 0x1c]
mov r8d, dword [rbx + 0x1c]
xor r8d, dword [rbx + 8]
xor r10d, dword [rbx]
xor r9d, dword [rbx + 0x18]
xor r8d, dword [rbx - 0x10]
xor r10d, dword [rbx + 0x14]
xor r9d, dword [rbx + 4]
xor r8d, dword [rbx - 0x18]
xor r10d, dword [rbx - 0x18]
xor r9d, dword [rbx - 0x14]
rol r10d, 1
mov ecx, edi
mov eax, edi
or ecx, r14d
and eax, r14d
mov edx, r15d
and ecx, esi
rol edx, 5
mov dword [rbx + 0x20], r10d
or ecx, eax
add ecx, r10d
add ecx, r12d
rol r14d, 0x1e
rol r9d, 1
lea r12d, [rcx + rdx - 0x70e44324]
mov ecx, r14d
mov eax, r14d
or ecx, r15d
and eax, r15d
mov edx, r12d
and ecx, edi
rol edx, 5
mov dword [rbx + 0x24], r9d
or ecx, eax
mov eax, r12d
add ecx, r9d
add ecx, esi
rol r15d, 0x1e
rol r8d, 1
lea esi, [rcx + rdx - 0x70e44324]
mov dword [rbx + 0x28], r8d
and eax, r15d
mov ecx, r12d
mov edx, esi
or ecx, r15d
rol edx, 5
and ecx, r14d
or ecx, eax
add ecx, r8d
mov r8d, dword [rbx - 0xc]
xor r8d, dword [rbx + 0xc]
add ecx, edi
rol r12d, 0x1e
lea edi, [rcx + rdx - 0x70e44324]
xor r8d, r10d
mov ecx, r12d
xor r8d, dword [rbx - 0x14]
or ecx, esi
mov eax, r12d
rol r8d, 1
and ecx, r15d
and eax, esi
or ecx, eax
mov dword [rbx + 0x2c], r8d
mov edx, edi
add ecx, r8d
mov r8d, dword [rbx + 0x10]
rol edx, 5
xor r8d, dword [rbx - 8]
add ecx, r14d
rol esi, 0x1e
xor r8d, r9d
lea r14d, [rcx + rdx - 0x70e44324]
mov ecx, esi
xor r8d, dword [rbx - 0x10]
mov edx, r14d
rol r8d, 1
rol edx, 5
mov dword [rbx + 0x30], r8d
or ecx, edi
mov eax, esi
add rbx, 0x14
and ecx, r12d
and eax, edi
or ecx, eax
add ecx, r8d
add ecx, r15d
rol edi, 0x1e
dec r13
lea r15d, [rcx + rdx - 0x70e44324]
jne 0x487460
mov rbx, qword [rsp + 0x1c0]
mov r13, qword [rsp + 0x1c8]
lea r11, [rsp + 0x100]
mov ebp, 4
mov r8d, dword [r11 - 0x20]
mov r9d, dword [r11 - 0x1c]
mov edx, dword [r11 + 0x1c]
xor edx, dword [r11 + 8]
xor r8d, dword [r11 - 0x18]
xor r9d, dword [r11 + 0x18]
xor edx, dword [r11 - 0x10]
xor r8d, dword [r11]
xor r9d, dword [r11 + 4]
xor edx, dword [r11 - 0x18]
xor r8d, dword [r11 + 0x14]
xor r9d, dword [r11 - 0x14]
rol r8d, 1
mov eax, esi
mov ecx, r15d
xor eax, edi
rol ecx, 5
mov dword [r11 + 0x20], r8d
xor eax, r14d
add r11, 0x14
add eax, r8d
add eax, r12d
rol r14d, 0x1e
rol r9d, 1
lea r12d, [rax + rcx - 0x359d3e2a]
mov eax, edi
mov dword [r11 + 0x10], r9d
xor eax, r14d
mov ecx, r12d
xor eax, r15d
rol ecx, 5
add eax, r9d
add eax, esi
rol r15d, 0x1e
rol edx, 1
lea esi, [rax + rcx - 0x359d3e2a]
mov dword [r11 + 0x14], edx
mov eax, r12d
xor eax, r14d
mov ecx, esi
xor eax, r15d
rol ecx, 5
add eax, edx
mov edx, dword [r11 - 0x20]
xor edx, dword [r11 - 8]
add eax, edi
rol r12d, 0x1e
lea edi, [rax + rcx - 0x359d3e2a]
xor edx, r8d
mov eax, r12d
xor edx, dword [r11 - 0x28]
xor eax, esi
mov ecx, edi
xor eax, r15d
rol edx, 1
rol ecx, 5
add eax, edx
mov dword [r11 + 0x18], edx
mov edx, dword [r11 - 4]
xor edx, dword [r11 - 0x1c]
add eax, r14d
rol esi, 0x1e
xor edx, dword [r11 - 0x24]
lea r14d, [rax + rcx - 0x359d3e2a]
mov eax, r12d
xor eax, esi
xor edx, r9d
mov ecx, r14d
rol edx, 1
xor eax, edi
rol ecx, 5
add eax, edx
mov dword [r11 + 0x1c], edx
add eax, r15d
rol edi, 0x1e
dec rbp
lea r15d, [rax + rcx - 0x359d3e2a]
jne 0x4875b5
mov eax, dword [rbx]
mov rbp, qword [rsp + 0x1d0]
add eax, r15d
cmp byte [rsp + 0x1d8], 0
mov dword [rbp], eax
mov eax, dword [rbx + 4]
lea ecx, [r14 + rax]
mov dword [rbp + 4], ecx
mov eax, dword [rbx + 8]
lea ecx, [rdi + rax]
mov dword [rbp + 8], ecx
mov eax, dword [rbx + 0xc]
lea ecx, [rsi + rax]
mov dword [rbp + 0xc], ecx
mov eax, dword [rbx + 0x10]
lea ecx, [r12 + rax]
mov dword [rbp + 0x10], ecx
je 0x487719
lea rdx, [rsp + 0x130]
mov r8d, 0x40
mov rcx, r13
call sub.msvcrt.dll_memcpy
add rsp, 0x178
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret