Function at 0x180053bf0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x18], r8
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x160
movzx eax, byte [rcx + 1]
movzx ebp, byte [rcx]
movzx r12d, byte [rcx + 4]
movzx r13d, byte [rcx + 8]
movzx r14d, byte [rcx + 0xc]
movzx r15d, byte [rcx + 0x10]
shl ebp, 8
shl r12d, 8
shl r13d, 8
or ebp, eax
movzx eax, byte [rcx + 2]
shl r14d, 8
shl ebp, 8
shl r15d, 8
mov dword [rsp + 0x20], edx
or ebp, eax
movzx eax, byte [rcx + 3]
mov esi, 0x3c
shl ebp, 8
mov r8, rsi
xor edx, edx
or ebp, eax
movzx eax, byte [rcx + 5]
or r12d, eax
movzx eax, byte [rcx + 6]
shl r12d, 8
or r12d, eax
movzx eax, byte [rcx + 7]
shl r12d, 8
or r12d, eax
movzx eax, byte [rcx + 9]
or r13d, eax
movzx eax, byte [rcx + 0xa]
shl r13d, 8
or r13d, eax
movzx eax, byte [rcx + 0xb]
shl r13d, 8
or r13d, eax
movzx eax, byte [rcx + 0xd]
or r14d, eax
movzx eax, byte [rcx + 0xe]
shl r14d, 8
or r14d, eax
movzx eax, byte [rcx + 0xf]
shl r14d, 8
or r14d, eax
movzx eax, byte [rcx + 0x11]
or r15d, eax
movzx eax, byte [rcx + 0x12]
shl r15d, 8
or r15d, eax
movzx eax, byte [rcx + 0x13]
lea rcx, [rsp + 0x24]
shl r15d, 8
or r15d, eax
call fcn.180059b10
lea r11, [rsp + 0x40]
lea r9d, [rsi - 0x2c]
nop dword [rax + rax]
mov ecx, dword [r11 - 0x14]
mov eax, dword [r11 - 0x1c]
mov edx, dword [r11 - 0x18]
xor eax, dword [r11 + 0x18]
mov r8d, dword [r11 - 0x20]
add r11, 0x10
xor eax, dword [r11 - 0xc]
xor r8d, dword [r11 + 4]
xor r8d, dword [r11 - 0x10]
xor eax, ecx
mov dword [r11 + 0x14], eax
mov eax, dword [r11 + 0xc]
xor r8d, edx
xor eax, dword [r11 - 0x20]
mov dword [r11 + 0x10], r8d
xor eax, dword [r11 - 8]
xor eax, edx
mov dword [r11 + 0x18], eax
mov eax, dword [r11 - 0x1c]
xor eax, dword [r11 - 4]
xor eax, r8d
xor eax, ecx
sub r9, 1
mov dword [r11 + 0x1c], eax
jne 0x180053cf0
mov ebx, ebp
mov r11d, r12d
mov r10d, r13d
mov r9d, r14d
mov r8d, r15d
xor edi, edi
nop word [rax + rax]
mov ecx, r11d
mov eax, r10d
mov edx, ebx
rol edx, 5
and eax, r11d
not ecx
and ecx, r9d
add rdi, 5
or ecx, eax
add edx, ecx
mov ecx, ebx
add edx, dword [rsp + rdi*4 + 0xc]
not ecx
ror r11d, 2
and ecx, r10d
lea r8d, [rdx + r8 + 0x5a827999]
mov eax, r11d
and eax, ebx
mov edx, r8d
or ecx, eax
rol edx, 5
add edx, ecx
mov ecx, r8d
add edx, dword [rsp + rdi*4 + 0x10]
ror ebx, 2
not ecx
lea r9d, [rdx + r9 + 0x5a827999]
and ecx, r11d
mov eax, ebx
and eax, r8d
mov edx, r9d
or ecx, eax
rol edx, 5
add edx, ecx
mov ecx, r9d
add edx, dword [rsp + rdi*4 + 0x14]
ror r8d, 2
not ecx
lea r10d, [rdx + r10 + 0x5a827999]
and ecx, ebx
mov eax, r8d
and eax, r9d
mov edx, r10d
or ecx, eax
rol edx, 5
add edx, ecx
mov ecx, r10d
add edx, dword [rsp + rdi*4 + 0x18]
ror r9d, 2
not ecx
lea r11d, [rdx + r11 + 0x5a827999]
and ecx, r8d
mov eax, r9d
and eax, r10d
mov edx, r11d
rol edx, 5
or ecx, eax
add edx, ecx
add edx, dword [rsp + rdi*4 + 0x1c]
ror r10d, 2
cmp rdi, 0x14
lea edx, [rdx + rbx + 0x5a827999]
mov ebx, edx
jl 0x180053d60
mov edi, 0x14
nop word [rax + rax]
rol edx, 5
mov eax, r9d
add rdi, 5
xor eax, r10d
xor eax, r11d
add edx, eax
mov eax, r10d
add edx, dword [rsp + rdi*4 + 0xc]
ror r11d, 2
xor eax, r11d
lea r8d, [rdx + r8 + 0x6ed9eba1]
xor eax, ebx
mov ecx, r8d
rol ecx, 5
add ecx, eax
mov eax, r11d
add ecx, dword [rsp + rdi*4 + 0x10]
ror ebx, 2
lea r9d, [rcx + r9 + 0x6ed9eba1]
xor eax, ebx
xor eax, r8d
mov ecx, r9d
rol ecx, 5
add ecx, eax
mov eax, ebx
add ecx, dword [rsp + rdi*4 + 0x14]
ror r8d, 2
lea r10d, [rcx + r10 + 0x6ed9eba1]
xor eax, r8d
xor eax, r9d
mov ecx, r10d
rol ecx, 5
add ecx, eax
mov eax, r8d
add ecx, dword [rsp + rdi*4 + 0x18]
ror r9d, 2
lea r11d, [rcx + r11 + 0x6ed9eba1]
xor eax, r9d
xor eax, r10d
mov ecx, r11d
rol ecx, 5
add ecx, eax
add ecx, dword [rsp + rdi*4 + 0x1c]
ror r10d, 2
cmp rdi, 0x28
lea edx, [rcx + rbx + 0x6ed9eba1]
mov ebx, edx
jl 0x180053e40
mov edi, 0x28
nop word [rax + rax]
rol edx, 5
mov ecx, r10d
mov eax, r10d
or ecx, r11d
and eax, r11d
add edx, r8d
and ecx, r9d
add rdi, 5
or ecx, eax
add ecx, dword [rsp + rdi*4 + 0xc]
ror r11d, 2
lea r8d, [rcx + rdx - 0x70e44324]
mov ecx, r11d
mov eax, r11d
or ecx, ebx
and eax, ebx
mov edx, r8d
and ecx, r10d
rol edx, 5
or ecx, eax
add edx, r9d
add ecx, dword [rsp + rdi*4 + 0x10]
ror ebx, 2
lea r9d, [rcx + rdx - 0x70e44324]
mov ecx, ebx
mov eax, ebx
or ecx, r8d
and eax, r8d
mov edx, r9d
and ecx, r11d
rol edx, 5
or ecx, eax
add edx, r10d
add ecx, dword [rsp + rdi*4 + 0x14]
ror r8d, 2
lea r10d, [rcx + rdx - 0x70e44324]
mov ecx, r8d
mov eax, r8d
or ecx, r9d
and eax, r9d
mov edx, r10d
and ecx, ebx
rol edx, 5
or ecx, eax
add edx, r11d
add ecx, dword [rsp + rdi*4 + 0x18]
ror r9d, 2
lea r11d, [rcx + rdx - 0x70e44324]
mov ecx, r9d
mov eax, r9d
or ecx, r10d
and eax, r10d
mov edx, r11d
and ecx, r8d
rol edx, 5
add edx, ebx
or ecx, eax
add ecx, dword [rsp + rdi*4 + 0x1c]
ror r10d, 2
cmp rdi, rsi
lea edx, [rcx + rdx - 0x70e44324]
mov ebx, edx
jl 0x180053f00
nop word [rax + rax]
rol edx, 5
mov eax, r9d
add rsi, 5
xor eax, r10d
add edx, r8d
xor eax, r11d
add eax, dword [rsp + rsi*4 + 0xc]
ror r11d, 2
lea r8d, [rax + rdx - 0x359d3e2a]
mov eax, r10d
xor eax, r11d
mov ecx, r8d
xor eax, ebx
rol ecx, 5
add eax, dword [rsp + rsi*4 + 0x10]
add ecx, r9d
ror ebx, 2
lea r9d, [rax + rcx - 0x359d3e2a]
mov eax, r11d
xor eax, ebx
mov ecx, r9d
xor eax, r8d
rol ecx, 5
add eax, dword [rsp + rsi*4 + 0x14]
add ecx, r10d
ror r8d, 2
lea r10d, [rax + rcx - 0x359d3e2a]
mov eax, ebx
xor eax, r8d
mov ecx, r10d
xor eax, r9d
rol ecx, 5
add eax, dword [rsp + rsi*4 + 0x18]
add ecx, r11d
ror r9d, 2
lea r11d, [rax + rcx - 0x359d3e2a]
mov eax, r8d
xor eax, r9d
mov ecx, r11d
xor eax, r10d
rol ecx, 5
add eax, dword [rsp + rsi*4 + 0x1c]
add ecx, ebx
ror r10d, 2
cmp rsi, 0x50
lea edx, [rax + rcx - 0x359d3e2a]
mov ebx, edx
jl 0x180053fe0
mov rcx, qword [rsp + 0x1a0]
lea eax, [rdx + rbp]
mov dword [rcx], eax
lea eax, [r11 + r12]
lea r11, [rsp + 0x160]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x48]
mov dword [rcx + 4], eax
lea eax, [r10 + r13]
mov dword [rcx + 8], eax
lea eax, [r9 + r14]
mov dword [rcx + 0xc], eax
lea eax, [r8 + r15]
mov dword [rcx + 0x10], eax
xor eax, eax
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret