Function at 0x1800597c0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x248
call fcn.1800c7940
sub rsp, rax
mov eax, dword [rcx]
mov r14d, dword [rcx + 0x18]
mov r13d, dword [rcx + 8]
mov r12d, dword [rcx + 0x10]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0xc], eax
mov eax, dword [rcx + 4]
lea r10, [rsp + 0x30]
lea r11, [rsp + 0x34]
mov dword [rsp + 0x14], eax
mov dword [rsp + 4], eax
mov eax, dword [rcx + 0xc]
mov dword [rsp], eax
mov dword [rsp + 0x298], eax
mov eax, dword [rcx + 0x14]
mov dword [rsp + 0x10], eax
mov dword [rsp + 0x1c], eax
mov eax, dword [rcx + 0x1c]
xor r9d, r9d
sub r10, rdx
mov dword [rsp + 0x24], r13d
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x2a0], eax
mov dword [rsp + 8], r12d
mov dword [rsp + 0x18], r14d
mov dword [rsp + 0x2a8], r14d
lea r8, [rdx + 8]
sub r11, rdx
nop word [rax + rax]
mov ecx, dword [r8 - 8]
add r9, 4
add r8, 0x10
mov edx, ecx
mov eax, ecx
shr eax, 0x10
and edx, 0xff0000
or edx, eax
mov eax, ecx
and ecx, 0xff00
shl eax, 0x10
shr edx, 8
or eax, ecx
mov ecx, dword [r8 - 0x14]
shl eax, 8
or edx, eax
mov eax, ecx
shr eax, 0x10
mov dword [rsp + r9*4 + 0x20], edx
mov edx, ecx
and edx, 0xff0000
or edx, eax
mov eax, ecx
and ecx, 0xff00
shl eax, 0x10
shr edx, 8
or eax, ecx
mov ecx, dword [r8 - 0x10]
shl eax, 8
or edx, eax
mov eax, ecx
shr eax, 0x10
mov dword [rsp + r9*4 + 0x24], edx
mov edx, ecx
and edx, 0xff0000
or edx, eax
mov eax, ecx
and ecx, 0xff00
shl eax, 0x10
shr edx, 8
or eax, ecx
mov ecx, dword [r8 - 0xc]
shl eax, 8
or edx, eax
mov eax, ecx
mov dword [r10 + r8 - 0x10], edx
shr eax, 0x10
mov edx, ecx
and edx, 0xff0000
or edx, eax
mov eax, ecx
and ecx, 0xff00
shl eax, 0x10
shr edx, 8
or eax, ecx
shl eax, 8
or edx, eax
cmp r9, 0x10
mov dword [r11 + r8 - 0x10], edx
jl 0x180059860
lea r15, [rsp + 0x4c]
mov r14d, 0xd
mov edx, dword [r15 - 0x1c]
mov r8d, dword [r15]
mov edi, dword [r15 - 0x10]
mov ebp, dword [r15 + 0x18]
mov ebx, dword [r15 + 0xc]
mov r10d, dword [r15 - 0x18]
mov r9d, dword [r15 + 0x1c]
mov ecx, ebp
add r15, 0x10
rol ecx, 0xf
mov eax, ecx
xor eax, edx
xor eax, r8d
mov esi, eax
rol esi, 0xf
ror eax, 9
xor esi, eax
mov eax, edi
rol eax, 7
xor esi, eax
xor esi, ecx
xor esi, ebx
xor esi, edx
mov edx, dword [r15 - 0x1c]
xor esi, r8d
mov r8d, dword [r15 - 0xc]
rol r9d, 0xf
mov ecx, r9d
mov dword [r15 + 0x14], esi
xor ecx, r8d
xor ecx, r10d
rol edx, 7
mov eax, ecx
rol eax, 0xf
xor edx, eax
ror ecx, 9
xor edx, ecx
xor edx, dword [r15]
xor edx, r9d
mov r9d, dword [r15 + 0x10]
xor edx, r8d
mov r8d, dword [r15 - 8]
xor edx, r10d
mov r10d, dword [r15 - 0x24]
rol r9d, 0xf
mov dword [r15 + 0x18], edx
mov edx, dword [r15 - 0x18]
mov ecx, r9d
xor ecx, r8d
xor ecx, r10d
rol edx, 7
mov eax, ecx
rol eax, 0xf
xor edx, eax
ror ecx, 9
xor edx, ecx
mov ecx, ebx
xor edx, dword [r15 + 4]
xor ecx, edi
xor edx, r9d
xor edx, r8d
xor edx, r10d
rol esi, 0xf
mov dword [r15 + 0x1c], edx
mov edx, dword [r15 - 0x14]
xor ecx, esi
rol edx, 7
mov eax, ecx
rol eax, 0xf
xor edx, eax
ror ecx, 9
xor edx, ecx
xor edx, ebp
xor edx, ebx
xor edx, edi
xor edx, esi
sub r14, 1
mov dword [r15 + 0x20], edx
jne 0x180059931
mov r14d, dword [rsp + 0x2a8]
xor ebx, ebx
mov rcx, rbx
nop word [rax + rax]
mov eax, dword [rsp + rcx + 0x40]
add rcx, 0x10
xor eax, dword [rsp + rcx + 0x20]
mov dword [rsp + rcx + 0x130], eax
mov eax, dword [rsp + rcx + 0x34]
xor eax, dword [rsp + rcx + 0x24]
mov dword [rsp + rcx + 0x134], eax
mov eax, dword [rsp + rcx + 0x38]
xor eax, dword [rsp + rcx + 0x28]
mov dword [rsp + rcx + 0x138], eax
mov eax, dword [rsp + rcx + 0x3c]
xor eax, dword [rsp + rcx + 0x2c]
cmp rcx, 0x100
mov dword [rsp + rcx + 0x13c], eax
jl 0x180059a30
mov r10d, dword [rsp + 4]
mov r11d, dword [rsp + 0x1c]
mov edi, dword [rsp + 0xc]
mov esi, ebx
mov rbp, rbx
nop dword [rax]
mov r9d, r13d
mov ecx, esi
mov edx, edi
and ecx, 0x1f
xor r9d, r10d
rol edx, 0xc
xor r9d, edi
mov r8d, 0x79cc4519
inc esi
rol r8d, cl
mov ecx, r14d
add rbp, 4
xor ecx, r11d
add r8d, edx
xor ecx, r12d
add r8d, r12d
add ecx, dword [rsp + rbp + 0x2c]
rol r8d, 7
xor edx, r8d
add ecx, r8d
add ecx, dword [rsp + 0x2a0]
add r9d, edx
mov dword [rsp + 0x2a0], r14d
add r9d, dword [rsp + rbp + 0x13c]
mov r14d, r11d
mov r11d, r12d
add r9d, dword [rsp + 0x298]
mov dword [rsp + 0x298], r13d
mov r13d, r10d
rol r13d, 9
ror r14d, 0xd
mov r12d, ecx
ror r12d, 0xf
mov eax, ecx
mov r10d, edi
rol eax, 9
mov edi, r9d
xor r12d, eax
xor r12d, ecx
cmp esi, 0x10
jl 0x180059a90
mov r15d, dword [rsp + 0x298]
mov esi, 0x10
nop dword [rax + rax]
mov eax, r9d
mov edx, r9d
and r9d, r10d
or eax, r10d
rol edx, 0xc
mov ecx, esi
and ecx, 0x1f
and eax, r13d
mov r8d, 0x7a879d8a
rol r8d, cl
or eax, r9d
mov ecx, r12d
add eax, dword [rsp + rbx + 0x180]
add r8d, edx
not ecx
add eax, r15d
and ecx, r14d
add r8d, r12d
rol r8d, 7
mov r9d, edx
mov edx, r14d
xor r9d, r8d
mov r15d, r13d
mov r13d, r10d
add r9d, eax
mov eax, r11d
mov r14d, r11d
and eax, r12d
mov r11d, r12d
inc esi
or ecx, eax
add rbx, 4
mov r10d, edi
add ecx, dword [rsp + rbx + 0x6c]
mov edi, r9d
add ecx, r8d
add ecx, dword [rsp + 0x2a0]
rol r13d, 9
ror r14d, 0xd
mov r12d, ecx
mov eax, ecx
mov dword [rsp + 0x2a0], edx
ror r12d, 0xf
rol eax, 9
xor r12d, eax
xor r12d, ecx
cmp esi, 0x40
jl 0x180059b40
mov eax, dword [rsp + 0x28]
mov dword [rsp + 0x298], r15d
mov r15, qword [rsp + 0x290]
xor eax, r9d
mov dword [r15], eax
mov eax, dword [rsp + 0x14]
xor eax, r10d
mov dword [r15 + 4], eax
mov eax, dword [rsp + 0x24]
xor eax, r13d
mov dword [r15 + 8], eax
mov eax, dword [rsp]
xor eax, dword [rsp + 0x298]
mov dword [r15 + 0xc], eax
mov eax, dword [rsp + 8]
xor eax, r12d
mov dword [r15 + 0x10], eax
mov eax, dword [rsp + 0x10]
xor eax, r11d
mov dword [r15 + 0x14], eax
mov eax, dword [rsp + 0x18]
xor eax, r14d
mov dword [r15 + 0x18], eax
mov eax, dword [rsp + 0x20]
xor eax, edx
mov dword [r15 + 0x1c], eax
add rsp, 0x248
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret