Function at 0x140017900
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov r9d, dword [rdx + 8]
lea r13, [0x140000000]
xor r9d, dword [rcx + 0xc]
mov esi, dword [rdx]
xor esi, dword [rcx + 4]
mov ebx, dword [rdx + 4]
xor ebx, dword [rcx + 8]
mov r10d, dword [rdx + 0xc]
xor r10d, dword [rcx + 0x10]
mov eax, r9d
shr rax, 0x18
movzx ebp, byte [rax + r13 + 0x45140]
mov eax, r9d
shr eax, 0x10
movzx ecx, al
shl ebp, 8
movzx eax, byte [rcx + r13 + 0x45340]
xor ebp, eax
mov eax, r9d
shr eax, 8
movzx ecx, al
shl ebp, 8
movzx eax, byte [rcx + r13 + 0x45240]
xor ebp, eax
movzx eax, r9b
movzx r15d, byte [rax + r13 + 0x45040]
mov eax, ebp
shl eax, 8
xor r15d, eax
mov eax, r10d
shr rax, 0x18
movzx r14d, byte [rax + r13 + 0x45140]
mov eax, r10d
shr eax, 0x10
movzx ecx, al
shl r14d, 8
movzx eax, byte [rcx + r13 + 0x45340]
xor r14d, eax
mov eax, r10d
shr eax, 8
movzx ecx, al
mov eax, r14d
shl eax, 8
movzx edi, byte [rcx + r13 + 0x45240]
xor edi, eax
movzx eax, r10b
shl edi, 8
movzx eax, byte [rax + r13 + 0x45040]
xor edi, eax
mov eax, ebx
shr rax, 0x18
movzx r8d, byte [rax + r13 + 0x45140]
mov eax, ebx
shr eax, 0x10
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + r13 + 0x45340]
xor r8d, eax
mov eax, ebx
shr eax, 8
movzx ecx, al
mov eax, r8d
shl eax, 8
movzx r11d, byte [rcx + r13 + 0x45240]
xor r11d, eax
movzx eax, bl
shl r11d, 8
movzx eax, byte [rax + r13 + 0x45040]
xor r11d, eax
mov eax, esi
shr rax, 0x18
mov r9d, r11d
movzx edx, byte [rax + r13 + 0x45140]
mov eax, esi
shr eax, 0x10
movzx ecx, al
shl edx, 8
movzx eax, byte [rcx + r13 + 0x45340]
xor edx, eax
mov eax, esi
shr eax, 8
movzx ecx, al
and ebp, 0xff00ff
mov eax, edx
mov ebx, r11d
shl eax, 8
shl ebx, 0x10
movzx r12d, byte [rcx + r13 + 0x45240]
xor ebx, r8d
xor r12d, eax
movzx eax, sil
shl r12d, 8
mov esi, edi
shl edi, 0x10
bswap esi
movzx eax, byte [rax + r13 + 0x45040]
mov r13d, r15d
xor r12d, eax
and r13d, 0xffff00ff
shl r13d, 8
mov r8d, r12d
xor r13d, ebp
shl r8d, 0x10
xor r8d, edx
xor r9d, r13d
mov r10d, r9d
and r9d, 0xffff00ff
shr r10d, 8
and r10d, 0xff00ff
shl r9d, 8
xor r10d, r9d
mov r9, qword [rsp + 0x60]
xor r10d, r8d
xor r10d, esi
bswap r15d
xor r15d, edi
xor r15d, r14d
lea r14, [0x140000000]
mov eax, r15d
mov ecx, r15d
xor eax, r10d
shr ecx, 0x10
xor r12d, eax
shl r15d, 0x10
xor r12d, dword [r9 + 0x18]
xor ecx, r15d
xor ecx, r10d
mov eax, r10d
bswap eax
bswap r11d
xor r8d, r11d
xor eax, r8d
mov edx, r8d
xor r13d, eax
shr edx, 0x10
xor r13d, dword [r9 + 0x20]
mov eax, ecx
and ecx, 0xffff00ff
shr eax, 8
shl ecx, 8
and eax, 0xff00ff
xor eax, ecx
shl r8d, 0x10
xor eax, dword [r9 + 0x14]
xor edx, r8d
xor ebx, eax
mov ecx, edx
mov eax, r10d
and ecx, 0xff00ffff
shr eax, 8
and edx, 0xffff00ff
xor ecx, eax
shl r10d, 8
shr ecx, 8
xor r10d, edx
shl r10d, 8
xor ecx, r10d
mov eax, ebx
xor ecx, dword [r9 + 0x1c]
xor esi, ecx
shr rax, 0x18
movzx ebp, byte [rax + r14 + 0x45240]
mov eax, ebx
shl ebp, 8
shr eax, 0x10
movzx ecx, al
movzx eax, byte [rcx + r14 + 0x45040]
xor ebp, eax
mov eax, ebx
shr eax, 8
movzx ecx, al
shl ebp, 8
movzx eax, byte [rcx + r14 + 0x45140]
xor ebp, eax
movzx eax, bl
shl ebp, 8
movzx eax, byte [rax + r14 + 0x45340]
xor ebp, eax
mov eax, r12d
shr rax, 0x18
movzx r8d, byte [rax + r14 + 0x45240]
mov eax, r12d
shr eax, 0x10
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + r14 + 0x45040]
xor r8d, eax
mov eax, r12d
shr eax, 8
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + r14 + 0x45140]
xor r8d, eax
movzx eax, r12b
shl r8d, 8
movzx eax, byte [rax + r14 + 0x45340]
xor r8d, eax
mov eax, esi
shr rax, 0x18
mov dword [rsp + 0x78], r8d
movzx ebx, byte [rax + r14 + 0x45240]
mov eax, esi
shr eax, 0x10
movzx ecx, al
shl ebx, 8
movzx eax, byte [rcx + r14 + 0x45040]
xor ebx, eax
mov eax, esi
shr eax, 8
movzx ecx, al
shl ebx, 8
movzx eax, byte [rcx + r14 + 0x45140]
mov ecx, r13d
xor ebx, eax
shr ecx, 0x10
movzx edx, cl
movzx eax, sil
shl ebx, 8
movzx ecx, byte [rdx + r14 + 0x45040]
movzx eax, byte [rax + r14 + 0x45340]
xor ebx, eax
mov eax, r13d
shr rax, 0x18
movzx eax, byte [rax + r14 + 0x45240]
shl eax, 8
xor eax, ecx
mov ecx, r13d
shr ecx, 8
movzx edx, cl
shl eax, 8
movzx ecx, byte [rdx + r14 + 0x45140]
xor eax, ecx
movzx ecx, r13b
shl eax, 8
mov r13d, 2
movzx ecx, byte [rcx + r14 + 0x45340]
xor eax, ecx
movzx ecx, byte [r9]
mov qword [rsp + 0x10], rcx
cmp rcx, r13
jbe 0x1400181a9
lea rsi, [r9 + 0x38]
mov qword [rsp], r13
mov qword [rsp + 8], rsi
nop dword [rax]
mov ecx, r8d
mov edi, r8d
shl ecx, 0x10
mov edx, r8d
shr edi, 0x10
mov r8d, eax
xor edi, ecx
shr r8d, 0x10
mov ecx, eax
mov r9d, ebp
shl ecx, 0x10
mov r11d, ebx
xor r8d, ecx
shr r9d, 0x10
and r11d, 0xffff00ff
mov ecx, ebx
shr ecx, 8
and ecx, 0xff00ff
shl r11d, 8
xor r11d, ecx
mov ecx, ebp
xor edx, r11d
shl ecx, 0x10
xor r9d, ecx
mov r10d, edx
mov ecx, dword [rsp + 0x78]
and edx, 0xffff00ff
bswap ecx
shl edx, 8
shr r10d, 8
and r10d, 0xff00ff
xor r10d, edx
xor r10d, r9d
xor r9d, ecx
bswap eax
xor r10d, eax
bswap ebx
xor r8d, ebx
mov ecx, r8d
mov edx, r8d
xor ecx, r10d
shr edx, 0x10
xor ebp, ecx
shl r8d, 0x10
xor ebp, dword [rsi - 0x10]
xor edx, r8d
xor edx, r10d
mov dword [rsp + 0x78], ebp
mov ecx, r10d
mov r8d, r9d
bswap ecx
xor ecx, r9d
shr r8d, 0x10
xor r11d, ecx
shl r9d, 0x10
xor r11d, dword [rsi - 8]
mov ecx, edx
and edx, 0xffff00ff
shr ecx, 8
shl edx, 8
and ecx, 0xff00ff
xor ecx, edx
xor r8d, r9d
xor ecx, dword [rsi - 0x14]
mov edx, r8d
and edx, 0xff00ffff
xor edi, ecx
mov ecx, r10d
and r8d, 0xffff00ff
shl r10d, 8
shr ecx, 8
xor r10d, r8d
xor edx, ecx
shl r10d, 8
shr edx, 8
xor edx, r10d
xor edx, dword [rsi - 0xc]
xor eax, edx
mov ecx, eax
shr rcx, 0x18
movzx r10d, byte [rcx + r14 + 0x45140]
mov ecx, eax
shl r10d, 8
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + r14 + 0x45340]
xor r10d, ecx
mov ecx, eax
shr ecx, 8
movzx edx, cl
shl r10d, 8
movzx ecx, byte [rdx + r14 + 0x45240]
mov edx, dword [rsp + 0x78]
xor r10d, ecx
movzx ecx, al
mov eax, r10d
shl eax, 8
movzx ebp, byte [rcx + r14 + 0x45040]
xor ebp, eax
mov eax, r11d
shr rax, 0x18
movzx esi, byte [rax + r14 + 0x45140]
mov eax, r11d
shr eax, 0x10
movzx ecx, al
shl esi, 8
movzx eax, byte [rcx + r14 + 0x45340]
xor esi, eax
mov eax, r11d
shr eax, 8
movzx ecx, al
mov eax, esi
shl eax, 8
movzx ebx, byte [rcx + r14 + 0x45240]
xor ebx, eax
movzx eax, r11b
shl ebx, 8
movzx eax, byte [rax + r14 + 0x45040]
xor ebx, eax
mov eax, edx
shr rax, 0x18
movzx r8d, byte [rax + r14 + 0x45140]
mov eax, edx
shr eax, 0x10
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + r14 + 0x45340]
xor r8d, eax
mov eax, edx
shr eax, 8
movzx ecx, al
mov eax, r8d
shl eax, 8
movzx r11d, byte [rcx + r14 + 0x45240]
xor r11d, eax
movzx eax, dl
shl r11d, 8
movzx eax, byte [rax + r14 + 0x45040]
xor r11d, eax
mov eax, edi
shr rax, 0x18
mov r9d, r11d
movzx edx, byte [rax + r14 + 0x45140]
mov eax, edi
shr eax, 0x10
movzx ecx, al
shl edx, 8
movzx eax, byte [rcx + r14 + 0x45340]
xor edx, eax
mov eax, edi
shr eax, 8
movzx ecx, al
mov eax, edx
shl eax, 8
movzx r14d, byte [rcx + r14 + 0x45240]
lea rcx, [0x140000000]
xor r14d, eax
movzx eax, dil
shl r14d, 8
mov edi, r11d
movzx eax, byte [rax + rcx + 0x45040]
xor r14d, eax
and r10d, 0xff00ff
shl edi, 0x10
mov r12d, ebp
xor edi, r8d
bswap ebp
and r12d, 0xffff00ff
mov r8d, r14d
shl r12d, 8
mov r15d, ebx
xor r12d, r10d
shl r8d, 0x10
xor r8d, edx
shl ebx, 0x10
xor r9d, r12d
xor ebp, ebx
xor ebp, esi
mov r10d, r9d
mov rsi, qword [rsp + 8]
mov eax, ebp
shr r10d, 8
mov ecx, ebp
shr ecx, 0x10
and r10d, 0xff00ff
and r9d, 0xffff00ff
shl ebp, 0x10
xor ecx, ebp
shl r9d, 8
xor r10d, r9d
add r13d, 2
mov r9, qword [rsp]
xor r10d, r8d
bswap r15d
xor r10d, r15d
add r9, 2
xor eax, r10d
mov qword [rsp], r9
xor r14d, eax
xor ecx, r10d
xor r14d, dword [rsi]
mov eax, r10d
bswap eax
bswap r11d
xor r8d, r11d
xor eax, r8d
mov edx, r8d
xor r12d, eax
shr edx, 0x10
xor r12d, dword [rsi + 8]
mov eax, ecx
shr eax, 8
and ecx, 0xffff00ff
and eax, 0xff00ff
shl ecx, 8
xor eax, ecx
shl r8d, 0x10
xor eax, dword [rsi - 4]
xor edx, r8d
xor edi, eax
mov ecx, edx
and ecx, 0xff00ffff
mov eax, r10d
shr eax, 8
and edx, 0xffff00ff
xor ecx, eax
shl r10d, 8
shr ecx, 8
xor r10d, edx
shl r10d, 8
lea rdx, [0x140000000]
xor ecx, r10d
mov eax, edi
xor ecx, dword [rsi + 4]
shr rax, 0x18
xor r15d, ecx
movzx ebp, byte [rax + rdx + 0x45240]
mov eax, edi
shr eax, 0x10
movzx ecx, al
shl ebp, 8
movzx eax, byte [rcx + rdx + 0x45040]
xor ebp, eax
shl ebp, 8
mov eax, edi
shr eax, 8
add rsi, 0x20
movzx ecx, al
mov qword [rsp + 8], rsi
movzx eax, byte [rcx + rdx + 0x45140]
xor ebp, eax
movzx eax, dil
shl ebp, 8
movzx eax, byte [rax + rdx + 0x45340]
xor ebp, eax
mov eax, r14d
shr rax, 0x18
movzx r8d, byte [rax + rdx + 0x45240]
mov eax, r14d
shr eax, 0x10
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + rdx + 0x45040]
xor r8d, eax
mov eax, r14d
shr eax, 8
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + rdx + 0x45140]
xor r8d, eax
movzx eax, r14b
lea r14, [0x140000000]
shl r8d, 8
movzx eax, byte [rax + r14 + 0x45340]
xor r8d, eax
mov eax, r15d
shr rax, 0x18
mov dword [rsp + 0x78], r8d
movzx ebx, byte [rax + r14 + 0x45240]
mov eax, r15d
shr eax, 0x10
movzx ecx, al
shl ebx, 8
movzx eax, byte [rcx + r14 + 0x45040]
xor ebx, eax
mov eax, r15d
shr eax, 8
movzx ecx, al
shl ebx, 8
movzx eax, byte [rcx + r14 + 0x45140]
mov ecx, r12d
xor ebx, eax
shr ecx, 0x10
movzx edx, cl
movzx eax, r15b
shl ebx, 8
movzx ecx, byte [rdx + r14 + 0x45040]
movzx eax, byte [rax + r14 + 0x45340]
xor ebx, eax
mov eax, r12d
shr rax, 0x18
movzx eax, byte [rax + r14 + 0x45240]
shl eax, 8
xor eax, ecx
mov ecx, r12d
shr ecx, 8
shl eax, 8
movzx edx, cl
movzx ecx, byte [rdx + r14 + 0x45140]
xor eax, ecx
movzx ecx, r12b
shl eax, 8
movzx ecx, byte [rcx + r14 + 0x45340]
xor eax, ecx
cmp r9, qword [rsp + 0x10]
jl 0x140017cf0
mov r9, qword [rsp + 0x60]
movsxd rcx, r13d
add rcx, rcx
xor ebx, dword [r9 + rcx*8 + 0xc]
xor ebp, dword [r9 + rcx*8 + 4]
xor r8d, dword [r9 + rcx*8 + 8]
xor eax, dword [r9 + rcx*8 + 0x10]
mov rcx, qword [rsp + 0x70]
mov dword [rcx + 8], ebx
mov rbx, qword [rsp + 0x68]
mov dword [rcx + 0xc], eax
xor eax, eax
mov dword [rcx], ebp
mov dword [rcx + 4], r8d
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret