Function at 0x5e1800
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
lea rdi, [rsp + 0x30]
mov rbx, rcx
mov esi, r8d
mov rcx, rdi
call fcn.00503e30
mov rcx, rdi
xor edi, edi
call fcn.005041b0
mov edx, esi
mov ecx, 0x1f
mov r8d, 1
mov dword [rsp + 0x20], eax
shl edx, 5
and eax, 3
and byte [rsp + 0x21], 0xf
or eax, edx
mov edx, 0xffffffff
and byte [rsp + 0x22], 0x3f
mov byte [rsp + 0x20], al
mov eax, r8d
shl eax, cl
or eax, edi
test dl, 1
cmovne edi, eax
sub rcx, 1
shr edx, 1
cmp rcx, 0xffffffffffffffff
jne 0x5e1851
cmp byte [0x007f5a00], 0
lea rbp, [0x007f45e0]
jne 0x5e1a60
xor r11d, r11d
mov r9d, 1
nop word [rax + rax]
movsx edx, r11b
mov ecx, r11d
and edx, 0x80000000
lea eax, [rdx + rdx]
mov r8d, eax
xor r8d, 0x1edc6f41
test edx, edx
cmovs eax, r8d
test r11b, 0x40
lea r8d, [rax - 0x80000000]
cmove r8d, eax
lea eax, [r8 + r8]
mov edx, eax
xor edx, 0x1edc6f41
test r8d, r8d
cmovs eax, edx
test r11b, 0x20
lea edx, [rax - 0x80000000]
cmove edx, eax
lea eax, [rdx + rdx]
mov r8d, eax
xor r8d, 0x1edc6f41
test edx, edx
cmovs eax, r8d
test r11b, 0x10
lea r8d, [rax - 0x80000000]
cmove r8d, eax
lea eax, [r8 + r8]
mov edx, eax
xor edx, 0x1edc6f41
test r8d, r8d
cmovs eax, edx
test r11b, 8
lea edx, [rax - 0x80000000]
cmove edx, eax
lea eax, [rdx + rdx]
mov r8d, eax
xor r8d, 0x1edc6f41
test edx, edx
cmovs eax, r8d
test r11b, 4
lea r8d, [rax - 0x80000000]
cmove r8d, eax
lea eax, [r8 + r8]
mov edx, eax
xor edx, 0x1edc6f41
test r8d, r8d
cmovs eax, edx
test r11b, 2
lea edx, [rax - 0x80000000]
cmove edx, eax
lea r8d, [rdx + rdx]
mov eax, r8d
xor eax, 0x1edc6f41
test edx, edx
cmovns eax, r8d
mov r8d, r11d
and r8d, 1
lea edx, [rax - 0x80000000]
cmovne eax, edx
lea edx, [rax + rax]
mov r10d, edx
xor r10d, 0x1edc6f41
test eax, eax
cmovs edx, r10d
cmp r8b, 1
sbb eax, eax
neg r8d
and eax, 0xffffff80
and r8d, 0xffffff80
sub eax, 0x40
test r11b, 2
cmove eax, r8d
mov r8d, r11d
shr r8b, 2
mov r10d, eax
or r10d, 0x20
test r8b, 1
cmovne eax, r10d
mov r10d, eax
or r10d, 0x10
and r8d, 2
mov r8d, r11d
cmovne eax, r10d
shr r8b, 4
mov r10d, eax
or r10d, 8
test r8b, 1
cmovne eax, r10d
mov r10d, eax
or r10d, 4
and r8d, 2
cmovne eax, r10d
shr cl, 6
mov r8d, eax
or r8d, 2
test cl, 1
cmovne eax, r8d
mov r8d, eax
or r8d, 1
and ecx, 2
mov ecx, 0x1f
cmovne eax, r8d
xor r8d, r8d
movzx r10d, al
mov eax, r9d
shl eax, cl
or eax, r8d
test dl, 1
cmovne r8d, eax
sub rcx, 1
shr edx, 1
cmp rcx, 0xffffffffffffffff
jne 0x5e1a25
add r11d, 1
movsxd rax, r10d
cmp r11d, 0x100
mov dword [rbp + rax*4], r8d
jne 0x5e1890
mov byte [0x007f5a00], 1
lea rax, [rsp + 0x20]
lea rcx, [rsp + 0x24]
mov edx, edi
xor dl, byte [rax]
add rax, 1
shr edi, 8
movzx edx, dl
xor edi, dword [rbp + rdx*4]
cmp rax, rcx
jne 0x5e1a6a
mov qword [rbx], 0
lea rbp, [rbx + 0x13]
not edi
mov eax, edi
mov qword [rbx + 8], 0
shr eax, 0x18
mov dword [rbx + 0x10], 0
mov byte [rbx], al
mov eax, edi
shr edi, 8
shr eax, 0x10
mov byte [rbx + 1], al
call fcn.00517370
mov edx, edi
lea rdi, [rbx + 3]
and edx, 0xfffffff8
and eax, 7
or eax, edx
mov byte [rbx + 2], al
call fcn.00517370
add rdi, 1
mov byte [rdi - 1], al
cmp rbp, rdi
jne 0x5e1ac5
mov rax, rbx
mov byte [rbx + 0x13], sil
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
ret