Function at 0x14000a312
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
mov rdi, rdx
mov rsi, rcx
xorps xmm0, xmm0
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x70], xmm0
mov dword [rsp + 0x90], 0
lea rax, [rsp + 0x28]
mov qword [rsp + 0x98], rax
mov rcx, qword [rsp + 0x98]
lea rcx, [rsp + 0x68]
mov qword [rsp + 0xa0], rcx
mov rdx, qword [rsp + 0xa0]
lea rdx, [rsp + 0x40]
mov qword [rsp + 0xa8], rdx
mov rbp, qword [rsp + 0xa8]
mov qword [rax], rdi
xor ebx, ebx
mov qword [rcx], rbx
mov qword [rdx], rbx
movaps xmmword [rsp + 0x50], xmm0
mov ecx, edi
call fcn.14002509f
lea ecx, [rax - 5]
mov eax, 1
shl rax, cl
add rax, 0xfff
and rax, 0xfffffffffffff000
lea rcx, [rdi + rax]
dec rcx
neg rax
and rax, rcx
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
lea rax, [0x1400e7408]
movsxd rcx, dword [rbx + rax]
xor dword [rsp + rcx*4 + 0x50], 0x78c104ba
add rbx, 4
cmp rbx, 0xc
jne 0x14000a3d1
mov edi, 0x59f86fa6
mov bpl, 1
mov eax, 0xc77b0d8
lea rcx, [0x1400e7400]
mov r8d, 0x5b7261a0
mov edx, dword [rsp + 0x58]
xor edx, eax
mov ebx, 0x3f000000
cmp edi, 0xe97711d
je 0x14000a46b
cmp edi, 0x23b3651a
je 0x14000a426
cmp edi, 0x59f86fa6
jne 0x14000a40c
jmp 0x14000a42f
mov rbx, qword [rsp + 0x20]
mov edi, edx
jmp 0x14000a40c
mov rdx, qword [rsp + 0x20]
test bpl, 1
je 0x14000a453
xor ebp, ebp
movsxd rbx, dword [rbp + rcx]
xor dword [rsp + rbx*4 + 0x50], 0x7a21c57f
add rbp, 4
cmp rbp, 8
jne 0x14000a43c
cmp rdx, 0x3f000001
mov edi, 0x765675a7
cmovl edi, r8d
xor edi, dword [rsp + 0x50]
xor ebp, ebp
jmp 0x14000a401
mov ebp, 0xffffffff
mov qword [rsp + 0x28], rbx
mov ecx, ebx
call fcn.14002509f
mov rdi, rax
lea ecx, [rax - 5]
sar rbx, cl
add rbx, 0xffffffffffffffe0
mov qword [rsp + 0x40], rbx
add rdi, 0xfffffffffffffffa
mov qword [rsp + 0x68], rdi
xorps xmm0, xmm0
movaps xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], 0
lea rax, [rsi + 0x814]
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xd0], rdi
mov ecx, ebx
shl rbp, cl
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xd0]
and ebp, dword [rax + rcx*4]
mov dword [rsp + 0x3c], ebp
xor eax, eax
lea rcx, [0x1400e66d0]
movsxd rdx, dword [rax + rcx]
xor dword [rsp + rdx*4 + 0x50], 0x78c104ba
add rax, 4
cmp rax, 0x14
jne 0x14000a4e4
mov eax, 0x23b3651a
mov r12b, 1
xor r14d, r14d
mov r13d, 0x7449e904
lea rbp, [0x1400e66b4]
xor ecx, ecx
mov r15d, dword [rsp + 0x60]
xor r15d, r13d
cmp eax, 0x3d971518
jle 0x14000a542
cmp eax, 0x3d971519
je 0x14000a5f9
cmp eax, 0x47c49478
je 0x14000a65a
cmp eax, 0x4ae4c48a
jne 0x14000a51c
jmp 0x14000a587
cmp eax, 0x23b3651a
je 0x14000a5bd
cmp eax, 0x2f7d4ef2
jne 0x14000a51c
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x20]
mov eax, dword [rax + rcx*4]
mov ecx, eax
neg ecx
and ecx, eax
call fcn.14002509f
mov qword [rsp + 0x40], rax
mov rcx, rdi
shl rcx, 8
add rcx, rsi
mov rcx, qword [rcx + rax*8 + 0x878]
mov eax, r15d
jmp 0x14000a51c
mov eax, dword [rsp + 0x3c]
mov ecx, eax
neg ecx
and ecx, eax
call fcn.14002509f
mov qword [rsp + 0x40], rax
mov rcx, rdi
shl rcx, 8
add rcx, rsi
mov rcx, qword [rcx + rax*8 + 0x878]
mov eax, dword [rsp + 0x58]
mov edx, 0x452455bd
xor eax, edx
jmp 0x14000a514
mov eax, dword [rsp + 0x3c]
test r14b, r14b
jne 0x14000a5de
xor edx, edx
movsxd rbx, dword [rdx + rbp]
xor dword [rsp + rbx*4 + 0x50], 0x7a21c57f
add rdx, 4
cmp rdx, 0x10
jne 0x14000a5c8
test eax, eax
mov eax, 0x3225c030
mov edx, 0x455611a3
cmove eax, edx
xor eax, dword [rsp + 0x50]
mov r14b, 1
jmp 0x14000a514
mov rcx, qword [rsp + 0xd0]
inc cl
mov eax, 0xffffffff
shl rax, cl
and eax, dword [rsi + 0x810]
mov ecx, eax
neg ecx
and ecx, eax
call fcn.14002509f
mov qword [rsp + 0x20], rax
mov rdi, qword [rsp + 0x20]
mov qword [rsp + 0x68], rdi
mov rax, qword [rsp + 0x20]
test r12b, 1
je 0x14000a63e
xor dword [rsp + 0x60], 0x316dbcb9
test rax, rax
mov eax, 0x452455bd
mov ecx, 0x2d9d8f37
cmovg eax, ecx
xor eax, dword [rsp + 0x5c]
xor r12d, r12d
jmp 0x14000a512
mov qword [rsp + 0x30], rcx
xor eax, eax
lea rcx, [0x1400e79b0]
movsxd rdx, dword [rax + rcx]
xor dword [rsp + rdx*4 + 0x70], 0x78c104ba
add rax, 4
cmp rax, 0x20
jne 0x14000a668
mov eax, 0x3d971519
xor r14d, r14d
lea rbx, [0x1400e7990]
lea rbp, [0x1400e69c0]
xor r13d, r13d
xor r15d, r15d
xor r12d, r12d
cmp eax, 0x634c96fe
jle 0x14000a6f6
cmp eax, 0x775b11f7
jg 0x14000a751
cmp eax, 0x634c96ff
je 0x14000a831
cmp eax, 0x69603052
jne 0x14000a69d
mov rdx, qword [rsp + 0x30]
mov r8, qword [rsp + 0xc0]
mov rcx, rsi
call fcn.140009e8f
mov rcx, rsi
mov rdx, rax
call fcn.14000a005
mov eax, dword [rsp + 0x8c]
mov ecx, 0x7d0a121c
xor eax, ecx
mov rdi, qword [rsp + 0x30]
jmp 0x14000a69d
cmp eax, 0x47c49477
jg 0x14000a7d5
cmp eax, 0x13cd7de5
je 0x14000a898
cmp eax, 0x3d971519
jne 0x14000a69d
mov rax, qword [rsp + 0x30]
test r14b, r14b
jne 0x14000a735
xor ecx, ecx
movsxd rdx, dword [rcx + rbx]
xor dword [rsp + rdx*4 + 0x70], 0x7a21c57f
add rcx, 4
cmp rcx, 0x1c
jne 0x14000a71f
test rax, rax
mov eax, 0x47eed8a
mov ecx, 0x3f0590c2
cmove eax, ecx
xor eax, dword [rsp + 0x70]
mov r14b, 1
jmp 0x14000a69d
cmp eax, 0x775b11f8
je 0x14000a8d0
cmp eax, 0x7cbfe930
jne 0x14000a69d
mov r8, qword [rsp + 0x68]
mov r9, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x30]
mov rcx, rsi
call fcn.14000a172
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0xc0]
mov ecx, 0x1000
add rax, rcx
mov rcx, qword [rsp + 0x30]
test r12b, r12b
jne 0x14000a7b0
xor dword [rsp + 0x8c], 0x23b3651a
cmp rax, qword [rcx + 8]
mov eax, 0x6b80f197
mov ecx, 0x5eb97706
cmovg eax, ecx
xor eax, dword [rsp + 0x88]
mov r12b, 1
mov rdi, qword [rsp + 0x30]
jmp 0x14000a69d
cmp eax, 0x47c49478
jne 0x14000a90b
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0xb0]
test r13b, r13b
jne 0x14000a812
xor ecx, ecx
movsxd rdx, dword [rcx + rbp]
xor dword [rsp + rdx*4 + 0x70], 0x53e92626
add rcx, 4
cmp rcx, 0xc
jne 0x14000a7fc
cmp rax, 0x80000
mov eax, 0x61ac573a
mov ecx, 0x75bbd03d
cmovl eax, ecx
xor eax, dword [rsp + 0x78]
mov r13b, 1
jmp 0x14000a69d
mov rdx, qword [rsp + 0xb0]
mov rcx, rsi
call fcn.140008a8b
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0x48]
mov rax, qword [rax + 8]
mov rcx, qword [rsp + 0xb8]
test r15b, r15b
jne 0x14000a874
xor dword [rsp + 0x84], 0x59f86fa6
cmp rcx, rax
mov eax, 0xd505120
mov ecx, 0x42c49a06
cmovl eax, ecx
xor eax, dword [rsp + 0x80]
mov r15b, 1
mov rdi, qword [rsp + 0x48]
jmp 0x14000a69d
mov rdx, qword [rsp + 0x48]
mov r8, qword [rsp + 0xb8]
mov rcx, rsi
call fcn.140009e8f
mov rcx, rsi
mov rdx, rax
call fcn.14000a005
mov eax, dword [rsp + 0x84]
mov ecx, 0x54a83e86
xor eax, ecx
mov rdi, qword [rsp + 0x48]
jmp 0x14000a69d
mov edx, 0x80000
mov rcx, rsi
call fcn.140008a8b
mov rdi, rax
mov r8, qword [rsp + 0x28]
mov rcx, rsi
mov rdx, rax
call fcn.140009e8f
mov rcx, rsi
mov rdx, rax
call fcn.14000a005
mov eax, dword [rsp + 0x7c]
mov ecx, 0xd505120
xor eax, ecx
jmp 0x14000a69d
cmp eax, 0x5c59b6c3
jne 0x14000a69d
mov ebp, 1
mov qword [rdi], rbp
mov rbx, rdi
sar rbx, 0xc
lea rdx, [rsi + 0x20a8]
mov r8, rdi
sar r8, 0x15
mov rcx, rsi
call fcn.140009c4c
mov rdx, rbx
shr rdx, 3
mov ecx, ebx
shl rbp, cl
and edx, 0x38
or qword [rax + rdx + 0x10], rbp
mov rax, qword [rsp + 0x28]
sub qword [rsi + 0x2090], rax
mov rax, qword [rsp + 0xa8]
mov rax, qword [rsp + 0xa0]
mov rax, qword [rsp + 0x98]
mov rax, rdi
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret