Function at 0x5f78c0
Capabilities:
Encode data using xor

Disassembly:
push rdi
mov rdi, rcx
push rsi
mov rsi, rdx
mov rdx, r8
mov rcx, r9
mov r8, qword [rsp + 0x38]
test rdx, rdx
je 0x5f7f0c
push rbx
push rbp
push r12
mov rax, qword [r8]
bswap rax
mov rbx, qword [r8 + 8]
bswap rbx
add r8, 0x10
mov r9, rdi
mov r10d, dword [r9]
sub r10, 8
xor rax, qword [r9 + 8]
add r9, 0x10
movzx ebp, al
mov r12d, dword [rsi + rbp*4]
movzx ebp, ah
xor r12d, dword [rsi + rbp*4 + 0xc00]
ror rax, 0x20
movzx ebp, al
mov r11d, dword [rsi + rbp*4 + 0xc00]
movzx ebp, ah
xor r11d, dword [rsi + rbp*4 + 0x800]
rol rax, 0x10
movzx ebp, al
xor r12d, dword [rsi + rbp*4 + 0x800]
movzx ebp, ah
xor r12d, dword [rsi + rbp*4 + 0x400]
ror rax, 0x20
movzx ebp, al
xor r11d, dword [rsi + rbp*4 + 0x400]
movzx ebp, ah
xor r11d, dword [rsi + rbp*4]
ror rax, 0x10
xor r12d, r11d
ror r11d, 8
xor r11d, r12d
shl r12, 0x20
or r12, r11
xor rbx, qword [r9]
xor rbx, r12
movzx ebp, bl
mov r12d, dword [rsi + rbp*4]
movzx ebp, bh
xor r12d, dword [rsi + rbp*4 + 0xc00]
ror rbx, 0x20
movzx ebp, bl
mov r11d, dword [rsi + rbp*4 + 0xc00]
movzx ebp, bh
xor r11d, dword [rsi + rbp*4 + 0x800]
rol rbx, 0x10
movzx ebp, bl
xor r12d, dword [rsi + rbp*4 + 0x800]
movzx ebp, bh
xor r12d, dword [rsi + rbp*4 + 0x400]
ror rbx, 0x20
movzx ebp, bl
xor r11d, dword [rsi + rbp*4 + 0x400]
movzx ebp, bh
xor r11d, dword [rsi + rbp*4]
ror rbx, 0x10
xor r12d, r11d
ror r11d, 8
xor r11d, r12d
shl r12, 0x20
or r12, r11
xor rax, qword [r9 + 8]
xor rax, r12
movzx ebp, al
mov r12d, dword [rsi + rbp*4]
movzx ebp, ah
xor r12d, dword [rsi + rbp*4 + 0xc00]
ror rax, 0x20
movzx ebp, al
mov r11d, dword [rsi + rbp*4 + 0xc00]
movzx ebp, ah
xor r11d, dword [rsi + rbp*4 + 0x800]
rol rax, 0x10
movzx ebp, al
xor r12d, dword [rsi + rbp*4 + 0x800]
movzx ebp, ah
xor r12d, dword [rsi + rbp*4 + 0x400]
ror rax, 0x20
movzx ebp, al
xor r11d, dword [rsi + rbp*4 + 0x400]
movzx ebp, ah
xor r11d, dword [rsi + rbp*4]
ror rax, 0x10
xor r12d, r11d
ror r11d, 8
xor r11d, r12d
shl r12, 0x20
or r12, r11
xor rbx, qword [r9 + 0x10]
xor rbx, r12
movzx ebp, bl
mov r12d, dword [rsi + rbp*4]
movzx ebp, bh
xor r12d, dword [rsi + rbp*4 + 0xc00]
ror rbx, 0x20
movzx ebp, bl
mov r11d, dword [rsi + rbp*4 + 0xc00]
movzx ebp, bh
xor r11d, dword [rsi + rbp*4 + 0x800]
rol rbx, 0x10
movzx ebp, bl
xor r12d, dword [rsi + rbp*4 + 0x800]
movzx ebp, bh
xor r12d, dword [rsi + rbp*4 + 0x400]
ror rbx, 0x20
movzx ebp, bl
xor r11d, dword [rsi + rbp*4 + 0x400]
movzx ebp, bh
xor r11d, dword [rsi + rbp*4]
ror rbx, 0x10
xor r12d, r11d
ror r11d, 8
xor r11d, r12d
shl r12, 0x20
or r12, r11
xor rax, qword [r9 + 0x18]
xor rax, r12
movzx ebp, al
mov r12d, dword [rsi + rbp*4]
movzx ebp, ah
xor r12d, dword [rsi + rbp*4 + 0xc00]
ror rax, 0x20
movzx ebp, al
mov r11d, dword [rsi + rbp*4 + 0xc00]
movzx ebp, ah
xor r11d, dword [rsi + rbp*4 + 0x800]
rol rax, 0x10
movzx ebp, al
xor r12d, dword [rsi + rbp*4 + 0x800]
movzx ebp, ah
xor r12d, dword [rsi + rbp*4 + 0x400]
ror rax, 0x20
movzx ebp, al
xor r11d, dword [rsi + rbp*4 + 0x400]
movzx ebp, ah
xor r11d, dword [rsi + rbp*4]
ror rax, 0x10
xor r12d, r11d
ror r11d, 8
xor r11d, r12d
shl r12, 0x20
or r12, r11
xor rbx, qword [r9 + 0x20]
xor rbx, r12
movzx ebp, bl
mov r12d, dword [rsi + rbp*4]
movzx ebp, bh
xor r12d, dword [rsi + rbp*4 + 0xc00]
ror rbx, 0x20
movzx ebp, bl
mov r11d, dword [rsi + rbp*4 + 0xc00]
movzx ebp, bh
xor r11d, dword [rsi + rbp*4 + 0x800]
rol rbx, 0x10
movzx ebp, bl
xor r12d, dword [rsi + rbp*4 + 0x800]
movzx ebp, bh
xor r12d, dword [rsi + rbp*4 + 0x400]
ror rbx, 0x20
movzx ebp, bl
xor r11d, dword [rsi + rbp*4 + 0x400]
movzx ebp, bh
xor r11d, dword [rsi + rbp*4]
ror rbx, 0x10
xor r12d, r11d
ror r11d, 8
xor r11d, r12d
shl r12, 0x20
or r12, r11
xor rax, qword [r9 + 0x28]
xor rax, r12
add r9, 0x40
mov rbp, rax
shr rbp, 0x20
and ebp, dword [r9 - 0xc]
rol ebp, 1
xor rax, rbp
mov ebp, dword [r9 - 0x10]
or ebp, eax
shl rbp, 0x20
xor rax, rbp
mov ebp, dword [r9 - 8]
or ebp, ebx
shl rbp, 0x20
xor rbx, rbp
mov rbp, rbx
shr rbp, 0x20
and ebp, dword [r9 - 4]
rol ebp, 1
xor rbx, rbp
movzx ebp, al
mov r12d, dword [rsi + rbp*4]
movzx ebp, ah
xor r12d, dword [rsi + rbp*4 + 0xc00]
ror rax, 0x20
movzx ebp, al
mov r11d, dword [rsi + rbp*4 + 0xc00]
movzx ebp, ah
xor r11d, dword [rsi + rbp*4 + 0x800]
rol rax, 0x10
movzx ebp, al
xor r12d, dword [rsi + rbp*4 + 0x800]
movzx ebp, ah
xor r12d, dword [rsi + rbp*4 + 0x400]
ror rax, 0x20
movzx ebp, al
xor r11d, dword [rsi + rbp*4 + 0x400]
movzx ebp, ah
xor r11d, dword [rsi + rbp*4]
ror rax, 0x10
xor r12d, r11d
ror r11d, 8
xor r11d, r12d
shl r12, 0x20
or r12, r11
xor rbx, qword [r9]
xor rbx, r12
movzx ebp, bl
mov r12d, dword [rsi + rbp*4]
movzx ebp, bh
xor r12d, dword [rsi + rbp*4 + 0xc00]
ror rbx, 0x20
movzx ebp, bl
mov r11d, dword [rsi + rbp*4 + 0xc00]
movzx ebp, bh
xor r11d, dword [rsi + rbp*4 + 0x800]
rol rbx, 0x10
movzx ebp, bl
xor r12d, dword [rsi + rbp*4 + 0x800]
movzx ebp, bh
xor r12d, dword [rsi + rbp*4 + 0x400]
ror rbx, 0x20
movzx ebp, bl
xor r11d, dword [rsi + rbp*4 + 0x400]
movzx ebp, bh
xor r11d, dword [rsi + rbp*4]
ror rbx, 0x10
xor r12d, r11d
ror r11d, 8
xor r11d, r12d
shl r12, 0x20
or r12, r11
xor rax, qword [r9 + 8]
xor rax, r12
movzx ebp, al
mov r12d, dword [rsi + rbp*4]
movzx ebp, ah
xor r12d, dword [rsi + rbp*4 + 0xc00]
ror rax, 0x20
movzx ebp, al
mov r11d, dword [rsi + rbp*4 + 0xc00]
movzx ebp, ah
xor r11d, dword [rsi + rbp*4 + 0x800]
rol rax, 0x10
movzx ebp, al
xor r12d, dword [rsi + rbp*4 + 0x800]
movzx ebp, ah
xor r12d, dword [rsi + rbp*4 + 0x400]
ror rax, 0x20
movzx ebp, al
xor r11d, dword [rsi + rbp*4 + 0x400]
movzx ebp, ah
xor r11d, dword [rsi + rbp*4]
ror rax, 0x10
xor r12d, r11d
ror r11d, 8
xor r11d, r12d
shl r12, 0x20
or r12, r11
xor rbx, qword [r9 + 0x10]
xor rbx, r12
movzx ebp, bl
mov r12d, dword [rsi + rbp*4]
movzx ebp, bh
xor r12d, dword [rsi + rbp*4 + 0xc00]
ror rbx, 0x20
movzx ebp, bl
mov r11d, dword [rsi + rbp*4 + 0xc00]
movzx ebp, bh
xor r11d, dword [rsi + rbp*4 + 0x800]
rol rbx, 0x10
movzx ebp, bl
xor r12d, dword [rsi + rbp*4 + 0x800]
movzx ebp, bh
xor r12d, dword [rsi + rbp*4 + 0x400]
ror rbx, 0x20
movzx ebp, bl
xor r11d, dword [rsi + rbp*4 + 0x400]
movzx ebp, bh
xor r11d, dword [rsi + rbp*4]
ror rbx, 0x10
xor r12d, r11d
ror r11d, 8
xor r11d, r12d
shl r12, 0x20
or r12, r11
xor rax, qword [r9 + 0x18]
xor rax, r12
movzx ebp, al
mov r12d, dword [rsi + rbp*4]
movzx ebp, ah
xor r12d, dword [rsi + rbp*4 + 0xc00]
ror rax, 0x20
movzx ebp, al
mov r11d, dword [rsi + rbp*4 + 0xc00]
movzx ebp, ah
xor r11d, dword [rsi + rbp*4 + 0x800]
rol rax, 0x10
movzx ebp, al
xor r12d, dword [rsi + rbp*4 + 0x800]
movzx ebp, ah
xor r12d, dword [rsi + rbp*4 + 0x400]
ror rax, 0x20
movzx ebp, al
xor r11d, dword [rsi + rbp*4 + 0x400]
movzx ebp, ah
xor r11d, dword [rsi + rbp*4]
ror rax, 0x10
xor r12d, r11d
ror r11d, 8
xor r11d, r12d
shl r12, 0x20
or r12, r11
xor rbx, qword [r9 + 0x20]
xor rbx, r12
movzx ebp, bl
mov r12d, dword [rsi + rbp*4]
movzx ebp, bh
xor r12d, dword [rsi + rbp*4 + 0xc00]
ror rbx, 0x20
movzx ebp, bl
mov r11d, dword [rsi + rbp*4 + 0xc00]
movzx ebp, bh
xor r11d, dword [rsi + rbp*4 + 0x800]
rol rbx, 0x10
movzx ebp, bl
xor r12d, dword [rsi + rbp*4 + 0x800]
movzx ebp, bh
xor r12d, dword [rsi + rbp*4 + 0x400]
ror rbx, 0x20
movzx ebp, bl
xor r11d, dword [rsi + rbp*4 + 0x400]
movzx ebp, bh
xor r11d, dword [rsi + rbp*4]
ror rbx, 0x10
xor r12d, r11d
ror r11d, 8
xor r11d, r12d
shl r12, 0x20
or r12, r11
xor rax, qword [r9 + 0x28]
xor rax, r12
sub r10, 8
ja 0x5f7bd2
bswap rax
mov qword [rcx + 8], rax
xor rbx, qword [r9 + 0x30]
bswap rbx
mov qword [rcx], rbx
add rcx, 0x10
sub rdx, 0x10
ja 0x5f78e0
pop r12
pop rbp
pop rbx
pop rsi
pop rdi
ret