Function at 0x140303f00
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov rax, qword [rsp + 0xc0]
mov esi, dword [rax]
mov ebx, dword [rax + 4]
mov rdi, rdx
mov eax, r8d
mov edx, dword [rsp + 0xc8]
bswap esi
sub eax, 8
movd xmm0, esi
bswap ebx
movd xmm5, ebx
mov qword [rsp + 0xa0], rcx
mov r15, r9
punpckldq xmm0, xmm5
mov dword [rsp + 0xb0], r8d
mov dword [rsp + 0x30], eax
test edx, edx
je 0x1403040d0
test eax, eax
js 0x140304460
shr eax, 3
mov rbp, rcx
lea r12, [rsp + 0x48]
mov dword [rsp + 0x28], eax
add eax, 1
lea r14, [rax*8]
lea rsi, [rdi + r14]
nop word [rax + rax]
mov eax, dword [rbp]
mov edx, dword [rbp + 4]
mov rcx, r12
add rdi, 8
add rbp, 8
bswap eax
bswap edx
movd xmm1, eax
movd xmm2, edx
punpckldq xmm1, xmm2
mov rdx, r15
pxor xmm0, xmm1
movq qword [rsp + 0x48], xmm0
call fcn.140303620
movq xmm0, qword [rsp + 0x48]
pshufd xmm3, xmm0, 0xe5
movd ebx, xmm3
movd r13d, xmm3
movd r11d, xmm3
shr r13d, 8
movzx eax, bl
shr r11d, 0x10
movd r10d, xmm3
movzx r13d, r13b
shl rax, 8
movzx r11d, r11b
movd edx, xmm0
or rax, r13
shr r10d, 0x18
movd r9d, xmm0
movd ecx, xmm0
shl rax, 8
movzx r10d, r10b
movd r8d, xmm0
shr ecx, 0x18
shr r9d, 8
or rax, r11
shr r8d, 0x10
movzx ecx, cl
shl rax, 8
movzx r9d, r9b
movzx r8d, r8b
or rax, r10
movzx r10d, dl
shl rax, 8
or rax, r10
shl rax, 8
or rax, r9
shl rax, 8
or rax, r8
shl rax, 8
or rax, rcx
mov qword [rdi - 8], rax
cmp rsi, rdi
jne 0x140303f88
mov eax, dword [rsp + 0x28]
mov esi, dword [rsp + 0xb0]
add qword [rsp + 0xa0], r14
neg eax
shl eax, 3
lea r8d, [rsi + rax - 0x10]
add eax, dword [rsp + 0x30]
mov dword [rsp + 0xb0], eax
mov ecx, ebx
cmp r8d, 0xfffffff8
je 0x140304480
movsxd rax, dword [rsp + 0xb0]
add rax, qword [rsp + 0xa0]
cmp dword [rsp + 0xb0], 7
ja case.0x1403040c6.0
mov r8d, dword [rsp + 0xb0]
lea r9, [0x1403cfe30]
movsxd r8, dword [r9 + r8*4]
add r8, r9
jmp r8
test eax, eax
js 0x140304478
shr eax, 3
mov rbp, rcx
lea r12, [rsp + 0x48]
mov dword [rsp + 0x34], eax
add eax, 1
shl rax, 3
mov qword [rsp + 0x38], rax
add rax, rdi
mov qword [rsp + 0x28], rax
nop dword [rax + rax]
mov r14d, ebx
mov r13d, esi
mov ebx, dword [rbp + 4]
mov esi, dword [rbp]
mov rdx, r15
mov rcx, r12
add rdi, 8
add rbp, 8
bswap esi
bswap ebx
movd xmm0, esi
movd xmm4, ebx
punpckldq xmm0, xmm4
movq qword [rsp + 0x48], xmm0
call fcn.140303a90
mov eax, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
xor eax, r14d
xor edx, r13d
mov r14d, eax
mov r10d, eax
mov r11d, eax
movzx eax, al
shr r14d, 8
shl rax, 8
mov ecx, edx
mov r8d, edx
shr r11d, 0x10
movzx r14d, r14b
shr r10d, 0x18
mov r9d, edx
or rax, r14
movzx r11d, r11b
movzx r10d, r10b
movzx edx, dl
shl rax, 8
shr r9d, 8
shr r8d, 0x10
or rax, r11
movzx r9d, r9b
shr ecx, 0x18
shl rax, 8
movzx r8d, r8b
movzx ecx, cl
or rax, r10
shl rax, 8
or rax, rdx
shl rax, 8
or rax, r9
shl rax, 8
or rax, r8
shl rax, 8
or rax, rcx
mov qword [rdi - 8], rax
cmp qword [rsp + 0x28], rdi
jne 0x140304100
mov rax, qword [rsp + 0x38]
add qword [rsp + 0xa0], rax
mov eax, dword [rsp + 0x34]
mov ecx, dword [rsp + 0xb0]
neg eax
shl eax, 3
lea edx, [rcx + rax - 0x10]
add eax, dword [rsp + 0x30]
mov dword [rsp + 0xb0], eax
cmp edx, 0xfffffff8
je 0x1403042ad
mov rax, qword [rsp + 0xa0]
mov rdx, r15
lea rcx, [rsp + 0x48]
mov ebp, dword [rax]
mov r12d, dword [rax + 4]
bswap ebp
bswap r12d
movd xmm0, ebp
movd xmm5, r12d
punpckldq xmm0, xmm5
movq qword [rsp + 0x48], xmm0
call fcn.140303a90
xor esi, dword [rsp + 0x48]
xor ebx, dword [rsp + 0x4c]
movsxd rdx, dword [rsp + 0xb0]
add rdx, rdi
cmp dword [rsp + 0xb0], 7
ja case.0x140304266.0
mov eax, dword [rsp + 0xb0]
lea rcx, [0x1403cfe50]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov byte [rdx - 1], bh
sub rdx, 1
mov eax, ebx
sub rdx, 1
shr eax, 0x10
mov byte [rdx], al
shr ebx, 0x18
lea rax, [rdx - 1]
mov byte [rdx - 1], bl
mov byte [rax - 1], sil
lea rdx, [rax - 1]
mov ecx, esi
lea rax, [rdx - 1]
mov byte [rdx - 1], ch
mov ecx, esi
lea rdx, [rax - 1]
shr ecx, 0x10
mov byte [rax - 1], cl
shr esi, 0x18
mov ebx, r12d
mov byte [rdx - 1], sil
mov esi, ebp
mov eax, esi
mov ecx, esi
shr eax, 0x18
shr ecx, 0x10
mov r9d, eax
mov eax, esi
movzx eax, ah
mov r10d, eax
mov eax, ebx
mov r8d, ebx
shr eax, 0x18
shr r8d, 0x10
mov edx, eax
movzx eax, bh
mov r11d, eax
movzx ebx, bl
movzx r11d, r11b
movzx r8d, r8b
movzx edx, dl
shl rbx, 8
movzx esi, sil
movzx r10d, r10b
movzx ecx, cl
or rbx, r11
mov rax, qword [rsp + 0xc0]
movzx r9d, r9b
shl rbx, 8
or rbx, r8
shl rbx, 8
or rbx, rdx
shl rbx, 8
or rbx, rsi
shl rbx, 8
or rbx, r10
shl rbx, 8
or rbx, rcx
shl rbx, 8
or rbx, r9
mov qword [rax], rbx
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor ecx, ecx
movzx r8d, byte [rax - 1]
sub rax, 1
shl r8d, 0x10
or r8d, ecx
movzx ecx, byte [rax - 1]
lea r9, [rax - 1]
shl ecx, 0x18
or ecx, r8d
xor ecx, ebx
movzx r10d, byte [r9 - 1]
lea rax, [r9 - 1]
movzx r9d, byte [rax - 1]
lea r8, [rax - 1]
shl r9d, 8
or r9d, r10d
lea rax, [r8 - 1]
movzx r8d, byte [r8 - 1]
shl r8d, 0x10
or r8d, r9d
movzx eax, byte [rax - 1]
movd xmm5, ecx
shl eax, 0x18
or eax, r8d
xor eax, edx
movd xmm0, eax
punpckldq xmm0, xmm5
mov rdx, r15
lea rcx, [rsp + 0x48]
movq qword [rsp + 0x48], xmm0
call fcn.140303620
mov ebp, dword [rsp + 0x48]
mov eax, dword [rsp + 0x4c]
mov ebx, ebp
mov r15d, eax
mov r13d, eax
mov r14d, eax
shr ebx, 0x10
shr r15d, 8
mov esi, ebp
mov r12d, ebp
mov dword [rsp + 0x30], ebx
mov ecx, ebx
mov ebx, eax
movzx eax, al
shl rax, 8
mov r11d, r15d
movzx r15d, r15b
shr r14d, 0x10
shr r13d, 0x18
or rax, r15
mov r8d, r14d
movzx r14d, r14b
shl rax, 8
mov edx, r13d
movzx r13d, r13b
shr esi, 0x18
or rax, r14
mov dword [rsp + 0x28], esi
mov r9d, esi
mov esi, ebp
shl rax, 8
movzx ebp, bpl
shr r12d, 8
or rax, r13
mov r10d, r12d
movzx r12d, r12b
shl rax, 8
or rax, rbp
movzx ebp, byte [rsp + 0x30]
shl rax, 8
or rax, r12
shl rax, 8
or rax, rbp
movzx ebp, byte [rsp + 0x28]
shl rax, 8
or rax, rbp
mov qword [rdi], rax
jmp 0x1403042d6
pshufd xmm5, xmm0, 0xe5
mov r8d, eax
movd ebx, xmm5
movd edx, xmm0
jmp 0x140304086
mov edx, eax
jmp 0x1403041f4
mov eax, edx
mov ecx, edx
mov esi, edx
shr eax, 0x18
shr ecx, 0x10
mov r9d, eax
movzx eax, dh
mov r10d, eax
jmp 0x1403042c2
xor r8d, r8d
jmp 0x14030438b
mov r8, rax
xor r9d, r9d
jmp 0x14030437b
xor r10d, r10d
jmp 0x14030436b
mov r9, rax
jmp 0x140304362
xor r8d, r8d
jmp 0x140304352
movzx ecx, byte [rax - 1]
sub rax, 1
shl ecx, 8
jmp 0x140304342
mov rax, rdx
jmp 0x140304284
mov rax, rdx
jmp 0x140304295
mov ebx, r12d
mov esi, ebp
jmp 0x1403042ad