Function at 0x53e5b0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
sub rsp, 0x58
mov rbp, rsp
cmp byte [rcx + 9], 0
je 0x53e96e
mov eax, dword [rdx]
mov dword [rbp + 0xc], eax
mov eax, dword [rdx + 4]
mov dword [rbp + 0x10], eax
mov eax, dword [rdx + 8]
mov dword [rbp + 0x14], eax
mov eax, dword [rdx + 0xc]
mov dword [rbp + 0x18], eax
xor edx, edx
mov r9d, dword [rcx + 0x2c]
sub r9d, 2
mov eax, edx
cmp eax, r9d
ja 0x53e769
sub r9d, edx
add r9d, 1
mov edx, eax
mov r10, rdx
add r10, r10
add r10, r10
mov r11d, dword [rbp + 0xc]
xor r11d, dword [rcx + r10*8 + 0x30]
mov dword [rbp + 0x30], r11d
mov r10, rdx
add r10, r10
add r10, r10
mov r11d, dword [rbp + 0x10]
xor r11d, dword [rcx + r10*8 + 0x34]
mov dword [rbp + 0x34], r11d
mov r10, rdx
add r10, r10
add r10, r10
mov r11d, dword [rbp + 0x14]
xor r11d, dword [rcx + r10*8 + 0x38]
mov dword [rbp + 0x38], r11d
add rdx, rdx
add rdx, rdx
mov r10d, dword [rbp + 0x18]
xor r10d, dword [rcx + rdx*8 + 0x3c]
mov dword [rbp + 0x3c], r10d
lea rdx, [0x005830b4]
movzx r10, byte [rbp + 0x30]
lea r11, [0x005834b4]
movzx rbx, byte [rbp + 0x35]
mov edx, dword [rdx + r10*4]
xor edx, dword [r11 + rbx*4]
lea r10, [0x005838b4]
movzx r11, byte [rbp + 0x3a]
xor edx, dword [r10 + r11*4]
lea r10, [0x00583cb4]
movzx r11, byte [rbp + 0x3f]
xor edx, dword [r10 + r11*4]
mov dword [rbp + 0xc], edx
lea rdx, [0x005830b4]
movzx r10, byte [rbp + 0x34]
lea r11, [0x005834b4]
movzx rbx, byte [rbp + 0x39]
mov edx, dword [rdx + r10*4]
xor edx, dword [r11 + rbx*4]
lea r10, [0x005838b4]
movzx r11, byte [rbp + 0x3e]
xor edx, dword [r10 + r11*4]
lea r10, [0x00583cb4]
movzx r11, byte [rbp + 0x33]
xor edx, dword [r10 + r11*4]
mov dword [rbp + 0x10], edx
lea rdx, [0x005830b4]
movzx r10, byte [rbp + 0x38]
lea r11, [0x005834b4]
movzx rbx, byte [rbp + 0x3d]
mov edx, dword [rdx + r10*4]
xor edx, dword [r11 + rbx*4]
lea r10, [0x005838b4]
movzx r11, byte [rbp + 0x32]
xor edx, dword [r10 + r11*4]
lea r10, [0x00583cb4]
movzx r11, byte [rbp + 0x37]
xor edx, dword [r10 + r11*4]
mov dword [rbp + 0x14], edx
lea rdx, [0x005830b4]
movzx r10, byte [rbp + 0x3c]
lea r11, [0x005834b4]
movzx rbx, byte [rbp + 0x31]
mov edx, dword [rdx + r10*4]
xor edx, dword [r11 + rbx*4]
lea r10, [0x005838b4]
movzx r11, byte [rbp + 0x36]
xor edx, dword [r10 + r11*4]
lea r10, [0x00583cb4]
movzx r11, byte [rbp + 0x3b]
xor edx, dword [r10 + r11*4]
mov dword [rbp + 0x18], edx
add eax, 1
sub r9d, 1
test r9d, r9d
jne 0x53e5f6
nop
mov edx, dword [rcx + 0x2c]
mov eax, edx
sub eax, 1
mov eax, eax
mov r9, rax
add r9, r9
add r9, r9
mov r10d, dword [rbp + 0xc]
xor r10d, dword [rcx + r9*8 + 0x30]
mov dword [rbp + 0x30], r10d
mov r9, rax
add r9, r9
add r9, r9
mov r10d, dword [rbp + 0x10]
xor r10d, dword [rcx + r9*8 + 0x34]
mov dword [rbp + 0x34], r10d
mov r9, rax
add r9, r9
add r9, r9
mov r10d, dword [rbp + 0x14]
xor r10d, dword [rcx + r9*8 + 0x38]
mov dword [rbp + 0x38], r10d
add rax, rax
add rax, rax
mov r9d, dword [rbp + 0x18]
xor r9d, dword [rcx + rax*8 + 0x3c]
mov dword [rbp + 0x3c], r9d
lea rax, [0x005830b5]
movzx r9, byte [rbp + 0x30]
movzx rax, byte [rax + r9*4]
mov byte [rbp + 0xc], al
lea rax, [0x005830b5]
movzx r9, byte [rbp + 0x35]
movzx rax, byte [rax + r9*4]
mov byte [rbp + 0xd], al
lea rax, [0x005830b5]
movzx r9, byte [rbp + 0x3a]
movzx rax, byte [rax + r9*4]
mov byte [rbp + 0xe], al
lea rax, [0x005830b5]
movzx r9, byte [rbp + 0x3f]
movzx rax, byte [rax + r9*4]
mov byte [rbp + 0xf], al
lea rax, [0x005830b5]
movzx r9, byte [rbp + 0x34]
movzx rax, byte [rax + r9*4]
mov byte [rbp + 0x10], al
lea rax, [0x005830b5]
movzx r9, byte [rbp + 0x39]
movzx rax, byte [rax + r9*4]
mov byte [rbp + 0x11], al
lea rax, [0x005830b5]
movzx r9, byte [rbp + 0x3e]
movzx rax, byte [rax + r9*4]
mov byte [rbp + 0x12], al
lea rax, [0x005830b5]
movzx r9, byte [rbp + 0x33]
movzx rax, byte [rax + r9*4]
mov byte [rbp + 0x13], al
lea rax, [0x005830b5]
movzx r9, byte [rbp + 0x38]
movzx rax, byte [rax + r9*4]
mov byte [rbp + 0x14], al
lea rax, [0x005830b5]
movzx r9, byte [rbp + 0x3d]
movzx rax, byte [rax + r9*4]
mov byte [rbp + 0x15], al
lea rax, [0x005830b5]
movzx r9, byte [rbp + 0x32]
movzx rax, byte [rax + r9*4]
mov byte [rbp + 0x16], al
lea rax, [0x005830b5]
movzx r9, byte [rbp + 0x37]
movzx rax, byte [rax + r9*4]
mov byte [rbp + 0x17], al
lea rax, [0x005830b5]
movzx r9, byte [rbp + 0x3c]
movzx rax, byte [rax + r9*4]
mov byte [rbp + 0x18], al
lea rax, [0x005830b5]
movzx r9, byte [rbp + 0x31]
movzx rax, byte [rax + r9*4]
mov byte [rbp + 0x19], al
lea rax, [0x005830b5]
movzx r9, byte [rbp + 0x36]
movzx rax, byte [rax + r9*4]
mov byte [rbp + 0x1a], al
lea rax, [0x005830b5]
movzx r9, byte [rbp + 0x3b]
movzx rax, byte [rax + r9*4]
mov byte [rbp + 0x1b], al
mov edx, edx
mov rax, rdx
add rax, rax
add rax, rax
mov eax, dword [rcx + rax*8 + 0x30]
xor dword [rbp + 0xc], eax
lea rax, [rbp + 0x10]
mov r9, rdx
add r9, r9
add r9, r9
mov r9d, dword [rcx + r9*8 + 0x34]
xor dword [rax], r9d
lea rax, [rbp + 0x14]
add rdx, rdx
add rdx, rdx
mov edx, dword [rcx + rdx*8 + 0x38]
xor dword [rax], edx
lea rax, [rbp + 0x18]
mov edx, dword [rcx + 0x2c]
add rdx, rdx
add rdx, rdx
mov ecx, dword [rcx + rdx*8 + 0x3c]
xor dword [rax], ecx
mov eax, dword [rbp + 0xc]
mov dword [r8], eax
mov eax, dword [rbp + 0x10]
mov dword [r8 + 4], eax
mov eax, dword [rbp + 0x14]
mov dword [r8 + 8], eax
mov eax, dword [rbp + 0x18]
mov dword [r8 + 0xc], eax
lea rsp, [rbp + 0x58]
pop rbx
pop rbp
ret