Function at 0x4885cd
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rdi
mov qword [rsp + 0x10], rsi
mov rax, rsp
mov rdi, rcx
mov rsi, rdx
mov rdx, r8
mov rcx, r9
push rbx
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0x118
mov r14, rdx
mov r15, rcx
sub rsi, 0xffffffffffffff80
lea rbp, [rsp + 0x90]
xor edx, edx
mov r8, qword [rsi - 0x80]
mov rax, qword [rsi - 0x78]
mov dl, al
shr rax, 4
mov r10, r8
shr r8, 4
mov r9, qword [rsi - 0x70]
shl dl, 4
mov rbx, qword [rsi - 0x68]
shl r10, 0x3c
mov byte [rsp], dl
or rax, r10
mov dl, bl
shr rbx, 4
mov r10, r9
shr r9, 4
mov qword [rbp], r8
mov r8, qword [rsi - 0x60]
shl dl, 4
mov qword [rbp - 0x80], rax
mov rax, qword [rsi - 0x58]
shl r10, 0x3c
mov byte [rsp + 1], dl
or rbx, r10
mov dl, al
shr rax, 4
mov r10, r8
shr r8, 4
mov qword [rbp + 8], r9
mov r9, qword [rsi - 0x50]
shl dl, 4
mov qword [rbp - 0x78], rbx
mov rbx, qword [rsi - 0x48]
shl r10, 0x3c
mov byte [rsp + 2], dl
or rax, r10
mov dl, bl
shr rbx, 4
mov r10, r9
shr r9, 4
mov qword [rbp + 0x10], r8
mov r8, qword [rsi - 0x40]
shl dl, 4
mov qword [rbp - 0x70], rax
mov rax, qword [rsi - 0x38]
shl r10, 0x3c
mov byte [rsp + 3], dl
or rbx, r10
mov dl, al
shr rax, 4
mov r10, r8
shr r8, 4
mov qword [rbp + 0x18], r9
mov r9, qword [rsi - 0x30]
shl dl, 4
mov qword [rbp - 0x68], rbx
mov rbx, qword [rsi - 0x28]
shl r10, 0x3c
mov byte [rsp + 4], dl
or rax, r10
mov dl, bl
shr rbx, 4
mov r10, r9
shr r9, 4
mov qword [rbp + 0x20], r8
mov r8, qword [rsi - 0x20]
shl dl, 4
mov qword [rbp - 0x60], rax
mov rax, qword [rsi - 0x18]
shl r10, 0x3c
mov byte [rsp + 5], dl
or rbx, r10
mov dl, al
shr rax, 4
mov r10, r8
shr r8, 4
mov qword [rbp + 0x28], r9
mov r9, qword [rsi - 0x10]
shl dl, 4
mov qword [rbp - 0x58], rbx
mov rbx, qword [rsi - 8]
shl r10, 0x3c
mov byte [rsp + 6], dl
or rax, r10
mov dl, bl
shr rbx, 4
mov r10, r9
shr r9, 4
mov qword [rbp + 0x30], r8
mov r8, qword [rsi]
shl dl, 4
mov qword [rbp - 0x50], rax
mov rax, qword [rsi + 8]
shl r10, 0x3c
mov byte [rsp + 7], dl
or rbx, r10
mov dl, al
shr rax, 4
mov r10, r8
shr r8, 4
mov qword [rbp + 0x38], r9
mov r9, qword [rsi + 0x10]
shl dl, 4
mov qword [rbp - 0x48], rbx
mov rbx, qword [rsi + 0x18]
shl r10, 0x3c
mov byte [rsp + 8], dl
or rax, r10
mov dl, bl
shr rbx, 4
mov r10, r9
shr r9, 4
mov qword [rbp + 0x40], r8
mov r8, qword [rsi + 0x20]
shl dl, 4
mov qword [rbp - 0x40], rax
mov rax, qword [rsi + 0x28]
shl r10, 0x3c
mov byte [rsp + 9], dl
or rbx, r10
mov dl, al
shr rax, 4
mov r10, r8
shr r8, 4
mov qword [rbp + 0x48], r9
mov r9, qword [rsi + 0x30]
shl dl, 4
mov qword [rbp - 0x38], rbx
mov rbx, qword [rsi + 0x38]
shl r10, 0x3c
mov byte [rsp + 0xa], dl
or rax, r10
mov dl, bl
shr rbx, 4
mov r10, r9
shr r9, 4
mov qword [rbp + 0x50], r8
mov r8, qword [rsi + 0x40]
shl dl, 4
mov qword [rbp - 0x30], rax
mov rax, qword [rsi + 0x48]
shl r10, 0x3c
mov byte [rsp + 0xb], dl
or rbx, r10
mov dl, al
shr rax, 4
mov r10, r8
shr r8, 4
mov qword [rbp + 0x58], r9
mov r9, qword [rsi + 0x50]
shl dl, 4
mov qword [rbp - 0x28], rbx
mov rbx, qword [rsi + 0x58]
shl r10, 0x3c
mov byte [rsp + 0xc], dl
or rax, r10
mov dl, bl
shr rbx, 4
mov r10, r9
shr r9, 4
mov qword [rbp + 0x60], r8
mov r8, qword [rsi + 0x60]
shl dl, 4
mov qword [rbp - 0x20], rax
mov rax, qword [rsi + 0x68]
shl r10, 0x3c
mov byte [rsp + 0xd], dl
or rbx, r10
mov dl, al
shr rax, 4
mov r10, r8
shr r8, 4
mov qword [rbp + 0x68], r9
mov r9, qword [rsi + 0x70]
shl dl, 4
mov qword [rbp - 0x18], rbx
mov rbx, qword [rsi + 0x78]
shl r10, 0x3c
mov byte [rsp + 0xe], dl
or rax, r10
mov dl, bl
shr rbx, 4
mov r10, r9
shr r9, 4
mov qword [rbp + 0x70], r8
shl dl, 4
mov qword [rbp - 0x10], rax
shl r10, 0x3c
mov byte [rsp + 0xf], dl
or rbx, r10
mov qword [rbp + 0x78], r9
mov qword [rbp - 8], rbx
add rsi, 0xffffffffffffff80
mov r8, qword [rdi + 8]
mov r9, qword [rdi]
add r15, r14
lea r11, [0x0048a200]
jmp 0x4888d0
xor r9, qword [r14]
mov rdx, qword [r14 + 8]
lea r14, [r14 + 0x10]
xor rdx, r8
mov qword [rdi], r9
mov qword [rdi + 8], rdx
shr rdx, 0x20
xor rax, rax
rol edx, 8
mov al, dl
movzx ebx, dl
shl al, 4
shr ebx, 4
rol edx, 8
mov r8, qword [rsi + rax + 8]
mov r9, qword [rsi + rax]
mov al, dl
movzx ecx, dl
shl al, 4
movzx r12, byte [rsp + rbx]
shr ecx, 4
xor r12, r8
mov r10, r9
shr r8, 8
movzx r12, r12b
shr r9, 8
xor r8, qword [rbp + rbx*8 - 0x80]
shl r10, 0x38
xor r9, qword [rbp + rbx*8]
rol edx, 8
xor r8, qword [rsi + rax + 8]
xor r9, qword [rsi + rax]
mov al, dl
xor r8, r10
movzx r12, word [r11 + r12*2]
movzx ebx, dl
shl al, 4
movzx r13, byte [rsp + rcx]
shr ebx, 4
shl r12, 0x30
xor r13, r8
mov r10, r9
xor r9, r12
shr r8, 8
movzx r13, r13b
shr r9, 8
xor r8, qword [rbp + rcx*8 - 0x80]
shl r10, 0x38
xor r9, qword [rbp + rcx*8]
rol edx, 8
xor r8, qword [rsi + rax + 8]
xor r9, qword [rsi + rax]
mov al, dl
xor r8, r10
movzx r13, word [r11 + r13*2]
movzx ecx, dl
shl al, 4
movzx r12, byte [rsp + rbx]
shr ecx, 4
shl r13, 0x30
xor r12, r8
mov r10, r9
xor r9, r13
shr r8, 8
movzx r12, r12b
mov edx, dword [rdi + 8]
shr r9, 8
xor r8, qword [rbp + rbx*8 - 0x80]
shl r10, 0x38
xor r9, qword [rbp + rbx*8]
rol edx, 8
xor r8, qword [rsi + rax + 8]
xor r9, qword [rsi + rax]
mov al, dl
xor r8, r10
movzx r12, word [r11 + r12*2]
movzx ebx, dl
shl al, 4
movzx r13, byte [rsp + rcx]
shr ebx, 4
shl r12, 0x30
xor r13, r8
mov r10, r9
xor r9, r12
shr r8, 8
movzx r13, r13b
shr r9, 8
xor r8, qword [rbp + rcx*8 - 0x80]
shl r10, 0x38
xor r9, qword [rbp + rcx*8]
rol edx, 8
xor r8, qword [rsi + rax + 8]
xor r9, qword [rsi + rax]
mov al, dl
xor r8, r10
movzx r13, word [r11 + r13*2]
movzx ecx, dl
shl al, 4
movzx r12, byte [rsp + rbx]
shr ecx, 4
shl r13, 0x30
xor r12, r8
mov r10, r9
xor r9, r13
shr r8, 8
movzx r12, r12b
shr r9, 8
xor r8, qword [rbp + rbx*8 - 0x80]
shl r10, 0x38
xor r9, qword [rbp + rbx*8]
rol edx, 8
xor r8, qword [rsi + rax + 8]
xor r9, qword [rsi + rax]
mov al, dl
xor r8, r10
movzx r12, word [r11 + r12*2]
movzx ebx, dl
shl al, 4
movzx r13, byte [rsp + rcx]
shr ebx, 4
shl r12, 0x30
xor r13, r8
mov r10, r9
xor r9, r12
shr r8, 8
movzx r13, r13b
shr r9, 8
xor r8, qword [rbp + rcx*8 - 0x80]
shl r10, 0x38
xor r9, qword [rbp + rcx*8]
rol edx, 8
xor r8, qword [rsi + rax + 8]
xor r9, qword [rsi + rax]
mov al, dl
xor r8, r10
movzx r13, word [r11 + r13*2]
movzx ecx, dl
shl al, 4
movzx r12, byte [rsp + rbx]
shr ecx, 4
shl r13, 0x30
xor r12, r8
mov r10, r9
xor r9, r13
shr r8, 8
movzx r12, r12b
mov edx, dword [rdi + 4]
shr r9, 8
xor r8, qword [rbp + rbx*8 - 0x80]
shl r10, 0x38
xor r9, qword [rbp + rbx*8]
rol edx, 8
xor r8, qword [rsi + rax + 8]
xor r9, qword [rsi + rax]
mov al, dl
xor r8, r10
movzx r12, word [r11 + r12*2]
movzx ebx, dl
shl al, 4
movzx r13, byte [rsp + rcx]
shr ebx, 4
shl r12, 0x30
xor r13, r8
mov r10, r9
xor r9, r12
shr r8, 8
movzx r13, r13b
shr r9, 8
xor r8, qword [rbp + rcx*8 - 0x80]
shl r10, 0x38
xor r9, qword [rbp + rcx*8]
rol edx, 8
xor r8, qword [rsi + rax + 8]
xor r9, qword [rsi + rax]
mov al, dl
xor r8, r10
movzx r13, word [r11 + r13*2]
movzx ecx, dl
shl al, 4
movzx r12, byte [rsp + rbx]
shr ecx, 4
shl r13, 0x30
xor r12, r8
mov r10, r9
xor r9, r13
shr r8, 8
movzx r12, r12b
shr r9, 8
xor r8, qword [rbp + rbx*8 - 0x80]
shl r10, 0x38
xor r9, qword [rbp + rbx*8]
rol edx, 8
xor r8, qword [rsi + rax + 8]
xor r9, qword [rsi + rax]
mov al, dl
xor r8, r10
movzx r12, word [r11 + r12*2]
movzx ebx, dl
shl al, 4
movzx r13, byte [rsp + rcx]
shr ebx, 4
shl r12, 0x30
xor r13, r8
mov r10, r9
xor r9, r12
shr r8, 8
movzx r13, r13b
shr r9, 8
xor r8, qword [rbp + rcx*8 - 0x80]
shl r10, 0x38
xor r9, qword [rbp + rcx*8]
rol edx, 8
xor r8, qword [rsi + rax + 8]
xor r9, qword [rsi + rax]
mov al, dl
xor r8, r10
movzx r13, word [r11 + r13*2]
movzx ecx, dl
shl al, 4
movzx r12, byte [rsp + rbx]
shr ecx, 4
shl r13, 0x30
xor r12, r8
mov r10, r9
xor r9, r13
shr r8, 8
movzx r12, r12b
mov edx, dword [rdi]
shr r9, 8
xor r8, qword [rbp + rbx*8 - 0x80]
shl r10, 0x38
xor r9, qword [rbp + rbx*8]
rol edx, 8
xor r8, qword [rsi + rax + 8]
xor r9, qword [rsi + rax]
mov al, dl
xor r8, r10
movzx r12, word [r11 + r12*2]
movzx ebx, dl
shl al, 4
movzx r13, byte [rsp + rcx]
shr ebx, 4
shl r12, 0x30
xor r13, r8
mov r10, r9
xor r9, r12
shr r8, 8
movzx r13, r13b
shr r9, 8
xor r8, qword [rbp + rcx*8 - 0x80]
shl r10, 0x38
xor r9, qword [rbp + rcx*8]
rol edx, 8
xor r8, qword [rsi + rax + 8]
xor r9, qword [rsi + rax]
mov al, dl
xor r8, r10
movzx r13, word [r11 + r13*2]
movzx ecx, dl
shl al, 4
movzx r12, byte [rsp + rbx]
shr ecx, 4
shl r13, 0x30
xor r12, r8
mov r10, r9
xor r9, r13
shr r8, 8
movzx r12, r12b
shr r9, 8
xor r8, qword [rbp + rbx*8 - 0x80]
shl r10, 0x38
xor r9, qword [rbp + rbx*8]
rol edx, 8
xor r8, qword [rsi + rax + 8]
xor r9, qword [rsi + rax]
mov al, dl
xor r8, r10
movzx r12, word [r11 + r12*2]
movzx ebx, dl
shl al, 4
movzx r13, byte [rsp + rcx]
shr ebx, 4
shl r12, 0x30
xor r13, r8
mov r10, r9
xor r9, r12
shr r8, 8
movzx r13, r13b
shr r9, 8
xor r8, qword [rbp + rcx*8 - 0x80]
shl r10, 0x38
xor r9, qword [rbp + rcx*8]
rol edx, 8
xor r8, qword [rsi + rax + 8]
xor r9, qword [rsi + rax]
mov al, dl
xor r8, r10
movzx r13, word [r11 + r13*2]
movzx ecx, dl
shl al, 4
movzx r12, byte [rsp + rbx]
and ecx, 0xf0
shl r13, 0x30
xor r12, r8
mov r10, r9
xor r9, r13
shr r8, 8
movzx r12, r12b
mov edx, dword [rdi - 4]
shr r9, 8
xor r8, qword [rbp + rbx*8 - 0x80]
shl r10, 0x38
xor r9, qword [rbp + rbx*8]
movzx r12, word [r11 + r12*2]
xor r8, qword [rsi + rax + 8]
xor r9, qword [rsi + rax]
shl r12, 0x30
xor r8, r10
xor r9, r12
movzx r13, r8b
shr r8, 4
mov r10, r9
shl r13b, 4
shr r9, 4
xor r8, qword [rsi + rcx + 8]
movzx r13, word [r11 + r13*2]
shl r10, 0x3c
xor r9, qword [rsi + rcx]
xor r8, r10
shl r13, 0x30
bswap r8
xor r9, r13
bswap r9
cmp r14, r15
jb 0x4888d0
mov qword [rdi + 8], r8
mov qword [rdi], r9
lea rsi, [rsp + 0x148]
mov r15, qword [rsi - 0x30]
mov r14, qword [rsi - 0x28]
mov r13, qword [rsi - 0x20]
mov r12, qword [rsi - 0x18]
mov rbp, qword [rsi - 0x10]
mov rbx, qword [rsi - 8]
lea rsp, [rsi]
mov rdi, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
repz ret