Function at 0x140314150
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
mov rax, qword [rsp + 0xe0]
mov rdi, rdx
mov rdx, qword [rsp + 0xd8]
mov ebp, r8d
mov r13, r9
mov qword [rsp + 0xb0], rcx
mov ecx, dword [rax]
mov esi, dword [rdx]
mov eax, dword [rax + 4]
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x24], esi
mov esi, dword [rdx + 4]
mov dword [rsp + 0x2c], eax
mov rax, qword [rsp + 0xd0]
mov edx, dword [rsp + 0xe8]
mov dword [rsp + 0x28], esi
mov ebx, dword [rax + 4]
mov esi, dword [rax]
lea eax, [r8 - 8]
mov dword [rsp + 0x3c], eax
test edx, edx
je 0x140314310
test eax, eax
js 0x1403145a0
shr eax, 3
mov dword [rsp + 0xc0], r8d
lea r12, [rsp + 0x58]
mov ebp, ecx
mov dword [rsp + 0x30], eax
add eax, 1
mov r14, qword [rsp + 0xb0]
shl rax, 3
mov qword [rsp + 0x40], rax
lea r15, [rdi + rax]
nop dword [rax]
mov edx, dword [r14]
xor edx, dword [rsp + 0x24]
mov r8d, 1
mov rcx, r12
mov eax, dword [r14 + 4]
xor edx, esi
xor eax, dword [rsp + 0x28]
add rdi, 8
xor eax, ebx
mov dword [rsp + 0x58], edx
mov rdx, r13
add r14, 8
mov dword [rsp + 0x5c], eax
call fcn.1400ccdf0
mov ebx, dword [rsp + 0x2c]
xor ebx, dword [rsp + 0x5c]
mov eax, ebx
mov r11d, ebx
mov r10d, ebx
mov esi, dword [rsp + 0x58]
shr eax, 0x18
shr r11d, 0x10
movzx eax, al
movzx r11d, r11b
shr r10d, 8
xor esi, ebp
shl rax, 8
movzx r10d, r10b
mov r8d, esi
mov ecx, esi
shr r8d, 0x18
or rax, r11
shr ecx, 0x10
mov edx, esi
shl rax, 8
movzx r8d, r8b
movzx ecx, cl
shr edx, 8
or rax, r10
movzx r10d, bl
movzx edx, dl
shl rax, 8
or rax, r10
shl rax, 8
or rax, r8
shl rax, 8
or rax, rcx
shl rax, 8
or rax, rdx
movzx edx, sil
shl rax, 8
or rax, rdx
mov qword [rdi - 8], rax
cmp rdi, r15
jne 0x1403141f8
mov rax, qword [rsp + 0x40]
add qword [rsp + 0xb0], rax
mov eax, dword [rsp + 0x30]
mov ebp, dword [rsp + 0xc0]
neg eax
shl eax, 3
lea edx, [rbp + rax - 0x10]
mov ebp, dword [rsp + 0x3c]
add ebp, eax
cmp edx, 0xfffffff8
je 0x1403144bb
movsxd rax, ebp
add rax, qword [rsp + 0xb0]
cmp ebp, 7
ja case.0x14031430d.0
lea rcx, [0x1403d6860]
mov ebp, ebp
movsxd rdx, dword [rcx + rbp*4]
add rdx, rcx
jmp rdx
mov eax, dword [rsp + 0x3c]
test eax, eax
jle 0x1403144b0
sub ebp, 9
lea r12, [rsp + 0x58]
mov r14d, ebx
shr ebp, 3
lea eax, [rbp + 1]
mov dword [rsp + 0x40], ebp
mov rbp, qword [rsp + 0xb0]
shl rax, 3
mov qword [rsp + 0x48], rax
add rax, rdi
mov qword [rsp + 0x30], rax
nop word [rax + rax]
mov ebx, esi
mov eax, dword [rsp + 0x38]
mov esi, dword [rbp]
mov r15d, r14d
mov r14d, dword [rbp + 4]
xor r8d, r8d
mov rdx, r13
mov rcx, r12
xor eax, esi
add rdi, 8
add rbp, 8
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x2c]
xor eax, r14d
mov dword [rsp + 0x5c], eax
call fcn.1400ccdf0
mov ecx, dword [rsp + 0x28]
xor ecx, dword [rsp + 0x5c]
xor ecx, r15d
mov edx, dword [rsp + 0x24]
xor edx, dword [rsp + 0x58]
mov eax, ecx
mov r15d, ecx
xor edx, ebx
mov ebx, ecx
shr eax, 0x18
shr r15d, 0x10
mov r11d, edx
movzx ecx, cl
movzx eax, al
movzx r15d, r15b
shr ebx, 8
mov r10d, edx
shl rax, 8
movzx ebx, bl
shr r11d, 0x18
mov r8d, edx
or rax, r15
movzx r11d, r11b
shr r10d, 0x10
movzx edx, dl
shl rax, 8
movzx r10d, r10b
shr r8d, 8
or rax, rbx
movzx r8d, r8b
shl rax, 8
or rax, rcx
shl rax, 8
or rax, r11
shl rax, 8
or rax, r10
shl rax, 8
or rax, r8
shl rax, 8
or rax, rdx
mov qword [rdi - 8], rax
cmp rdi, qword [rsp + 0x30]
jne 0x140314350
mov rax, qword [rsp + 0x48]
add qword [rsp + 0xb0], rax
mov ebx, r14d
mov eax, dword [rsp + 0x40]
mov edi, dword [rsp + 0x3c]
neg eax
lea ebp, [rdi + rax*8]
mov rax, qword [rsp + 0xb0]
mov rcx, r12
mov rdx, r13
xor r8d, r8d
mov edi, dword [rax]
mov eax, dword [rsp + 0x38]
xor eax, edi
mov dword [rsp + 0x58], eax
mov rax, qword [rsp + 0xb0]
mov r14d, dword [rax + 4]
mov eax, dword [rsp + 0x2c]
xor eax, r14d
mov dword [rsp + 0x5c], eax
call fcn.1400ccdf0
mov r12d, dword [rsp + 0x24]
mov edx, dword [rsp + 0x28]
movsxd rcx, ebp
xor r12d, dword [rsp + 0x58]
xor edx, dword [rsp + 0x5c]
xor esi, r12d
xor edx, ebx
add rcx, qword [rsp + 0x30]
cmp ebp, 8
ja case.0x1403144ac.0
lea r9, [0x1403d6880]
mov ebp, ebp
movsxd r8, dword [r9 + rbp*4]
add r8, r9
jmp r8
cmp dword [rsp + 0x3c], 0xfffffff8
jne 0x140314748
mov eax, esi
mov edx, esi
mov ecx, ebx
movzx r8d, sil
shr edx, 0x10
movzx eax, ah
movzx r10d, bl
shr esi, 0x18
mov r9d, eax
movzx eax, bh
shr ecx, 0x10
mov r11d, eax
shr ebx, 0x18
movzx ebx, bl
movzx ecx, cl
movzx r11d, r11b
movzx esi, sil
shl rbx, 8
movzx edx, dl
movzx r9d, r9b
mov rax, qword [rsp + 0xd0]
or rbx, rcx
shl rbx, 8
or rbx, r11
shl rbx, 8
or rbx, r10
shl rbx, 8
or rbx, rsi
shl rbx, 8
or rbx, rdx
shl rbx, 8
or rbx, r9
shl rbx, 8
or rbx, r8
mov qword [rax], rbx
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, edx
sub rcx, 1
shr r8d, 0x18
mov byte [rcx], r8b
mov r8d, edx
sub rcx, 1
shr r8d, 0x10
mov byte [rcx], r8b
mov byte [rcx - 1], dh
lea r8, [rcx - 1]
mov byte [r8 - 1], dl
lea rcx, [r8 - 1]
mov edx, esi
lea r8, [rcx - 1]
shr edx, 0x18
mov byte [rcx - 1], dl
mov ecx, esi
lea rdx, [r8 - 1]
shr ecx, 0x10
mov byte [r8 - 1], cl
mov eax, esi
lea rcx, [rdx - 1]
mov byte [rdx - 1], ah
mov byte [rcx - 1], sil
mov ebx, r14d
mov esi, edi
jmp 0x1403144bb
mov edx, eax
mov r15, rdi
jmp 0x1403142e0
xor ecx, ecx
movzx edx, byte [rax - 1]
sub rax, 1
shl edx, 8
or edx, ecx
movzx r8d, byte [rax - 1]
lea rcx, [rax - 1]
or r8d, edx
movzx r9d, byte [rcx - 1]
lea rax, [rcx - 1]
shl r9d, 0x18
movzx ecx, byte [rax - 1]
lea rdx, [rax - 1]
shl ecx, 0x10
or ecx, r9d
lea rax, [rdx - 1]
movzx edx, byte [rdx - 1]
shl edx, 8
or edx, ecx
movzx eax, byte [rax - 1]
or eax, edx
xor esi, dword [rsp + 0x24]
xor ebx, dword [rsp + 0x28]
lea rcx, [rsp + 0x58]
mov rdx, r13
xor esi, eax
xor ebx, r8d
mov r8d, 1
mov dword [rsp + 0x58], esi
mov dword [rsp + 0x5c], ebx
call fcn.1400ccdf0
mov edi, dword [rsp + 0x38]
mov ebp, dword [rsp + 0x2c]
xor edi, dword [rsp + 0x58]
xor ebp, dword [rsp + 0x5c]
mov eax, edi
mov ebx, ebp
mov r14d, ebp
mov r13d, ebp
shr eax, 8
shr ebx, 0x18
mov esi, edi
mov r12d, edi
mov dword [rsp + 0x24], eax
shr r14d, 0x10
mov r9d, eax
movzx eax, bl
mov ecx, r14d
shl rax, 8
movzx r14d, r14b
movzx r10d, bpl
shr r13d, 8
or rax, r14
movzx ebp, bpl
shr esi, 0x10
mov r11d, r13d
shl rax, 8
movzx r13d, r13b
mov dword [rsp + 0x28], esi
or rax, r13
shr r12d, 0x18
mov edx, esi
movzx r8d, dil
shl rax, 8
mov esi, r12d
movzx r12d, r12b
movzx edi, dil
or rax, rbp
movzx ebp, byte [rsp + 0x28]
shl rax, 8
or rax, r12
shl rax, 8
or rax, rbp
movzx ebp, byte [rsp + 0x24]
shl rax, 8
or rax, rbp
shl rax, 8
or rax, rdi
mov qword [r15], rax
jmp 0x1403144e1
xor r8d, r8d
xor edx, edx
jmp 0x1403145f3
mov rdx, rax
xor r8d, r8d
xor ecx, ecx
jmp 0x1403145e6
xor r8d, r8d
xor r9d, r9d
jmp 0x1403145d8
mov rcx, rax
xor r8d, r8d
jmp 0x1403145cb
xor edx, edx
jmp 0x1403145bf
movzx ecx, byte [rax - 1]
sub rax, 1
shl ecx, 0x10
jmp 0x1403145b2
mov r8, rcx
jmp 0x140314566
mov r8, rcx
jmp 0x14031457a
mov rdx, rcx
jmp 0x140314587
mov qword [rsp + 0x30], rdi
lea r12, [rsp + 0x58]
jmp 0x14031443b
xor r8d, r8d
xor eax, eax
jmp 0x1403145f9
mov ebx, r14d
mov esi, edi
jmp 0x1403144bb