Function at 0x140023612
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x18
lea rbp, [rsp + 0x10]
mov qword [rbp], 0xfffffffffffffffe
mov r15, r9
mov esi, r8d
mov r12, rdx
mov rbx, rcx
mov rdi, rdx
imul eax, dword [0x14029a888], 0x424c00b0
imul ecx, dword [0x14029a88c], 0x952b2b0f
add eax, ecx
add eax, 0x6af6a57d
shl rax, 4
call fcn.1400fe1d0
sub rsp, rax
mov r13, rsp
mov eax, dword [0x14029a890]
mov ecx, dword [0x14029a894]
shrd ecx, eax, 1
xor ecx, 0x559bd12b
mov eax, ecx
shl rax, 5
call fcn.1400fe1d0
sub rsp, rax
mov r14, rsp
mov al, byte [0x14029a898]
mov cl, byte [0x14029a899]
shr cl, 6
shl al, 2
or al, cl
xor al, 0xc7
cmp byte [r9], al
jne 0x1400238ff
mov rcx, qword [r15 + 8]
sub rsp, 0x20
lea rdx, [0x1402bef00]
call fcn.14006ae64
add rsp, 0x20
mov rcx, qword [r15 + 8]
cmp rax, qword [rcx]
je 0x1400238ff
sub rsp, 0x20
lea rdx, [0x1402bef00]
mov rcx, r15
call fcn.140023230
add rsp, 0x20
mov cl, byte [0x14029a8ec]
mov dl, byte [0x14029a8ed]
shr dl, 1
shl cl, 7
or cl, dl
xor cl, 0xf7
cmp byte [rax], cl
jne 0x140023a7f
mov r15, rax
mov rcx, qword [rax + 8]
sub rsp, 0x20
lea rdx, [0x1402beed8]
call fcn.14006ae64
add rsp, 0x20
mov rcx, qword [r15 + 8]
cmp rax, qword [rcx]
je 0x140023a7f
sub rsp, 0x20
lea rdx, [0x1402beed8]
mov rcx, r15
call fcn.140023230
add rsp, 0x20
mov cl, byte [0x14029a8ee]
mov dl, byte [0x14029a8ef]
shr dl, 2
shl cl, 6
or cl, dl
xor cl, 0xd1
cmp byte [rax], cl
jne 0x140023a7f
mov qword [rbp - 8], r14
mov dword [r14], esi
add r14, 8
sub rsp, 0x20
lea rdx, [0x1402beed8]
mov rcx, r15
call fcn.140023230
mov rcx, rax
mov rdx, r14
call fcn.140028c26
add rsp, 0x20
mov rax, qword [0x14029a950]
mov rdx, qword [0x14029a958]
shrd rdx, rax, 0x23
movabs rcx, 0x60350403f9dc1fa5
xor rcx, rdx
nop
sub rsp, 0x20
call fcn.1400d87f8
add rsp, 0x20
nop
nop
mov rcx, rax
sub rsp, 0x20
mov qword [rbp - 0x10], rax
mov rdx, rbx
mov r8, qword [rbp - 8]
call fcn.1400c1ec8
add rsp, 0x20
nop
nop
mov rbx, r13
sub rsp, 0x20
mov rcx, r13
mov rdx, qword [rbp - 0x10]
call fcn.1400352c2
add rsp, 0x20
nop
mov rax, qword [rbx]
mov qword [r12], rax
mov rax, qword [rbx + 8]
mov qword [r12 + 8], rax
mov rdx, qword [r14]
test rdx, rdx
je 0x140023c51
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x18]
sub rax, rdx
movabs rcx, 0xfe4eb17ca4cf2371
imul rcx, qword [0x14029a960]
movabs r8, 0xc12993a5cb3f6098
imul r8, qword [0x14029a968]
add r8, rcx
movabs rcx, 0xb408f3fd93138bd5
add rcx, r8
cmp rax, rcx
jbe 0x140023c65
mov rcx, qword [rdx - 8]
movabs r8, 0x2c407994c227c222
imul r8, qword [0x14029a970]
movabs r9, 0x4c421d4d1bfe5b04
imul r9, qword [0x14029a978]
add r9, r8
add r9, rdx
sub r9, rcx
movabs rdx, 0xd64bf335c29f06d8
add rdx, r9
mov r8, qword [0x14029a980]
mov r9, qword [0x14029a988]
shrd r9, r8, 0x10
movabs r8, 0x5eca9cde00d05c4c
xor r8, r9
cmp rdx, r8
jae 0x140023ce9
movabs rdx, 0x2f66f4de026818d0
imul rdx, qword [0x14029a990]
movabs r8, 0xfad5318b7afd7904
imul r8, qword [0x14029a998]
add r8, rdx
movabs rdx, 0x75bc881a4f12423
add rax, rdx
add rax, r8
jmp 0x140023c68
mov eax, dword [0x1402bcbf8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp byte [rax + 0x5f0], 0
je 0x140023c7a
mov eax, dword [0x1402bcbf8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
lea rbx, [rax + 0x5d5]
movzx eax, byte [0x14029a89a]
movzx ecx, byte [0x14029a89b]
mov edx, eax
shl edx, 4
add edx, eax
mov eax, edx
mov edx, ecx
shl edx, 5
sub edx, ecx
mov ecx, edx
add cl, al
add cl, 0xd
cmp byte [rbx + 0x19], cl
je 0x140023a64
movabs rax, 0xfa8b7ebf1edd731e
movabs rdx, 0xa08b53607547a36a
movabs r8, 0xc015d847a8e9be91
movabs r9, 0xad4cb24ee2d1e6ff
movabs r10, 0xc996d49a71607fd2
movabs r11, 0x2d25d791ff81e943
movabs rsi, 0xf1d61ecd9b17a27a
xor r14d, r14d
mov rcx, qword [0x14029a8a0]
shr rcx, 0x19
not cl
mov r15, r14
shl r15, cl
mov ecx, dword [0x14029a8a8]
shr ecx, 5
xor ecx, 0xed
and r15d, ecx
mov rcx, qword [0x14029a8b0]
imul rcx, rax
mov r13, qword [0x14029a8b8]
imul r13, rdx
add r13, rcx
add r13, r8
mov ecx, r15d
shr r13, cl
mov ecx, r13d
xor byte [rbx + r14], r13b
mov rcx, qword [0x14029a8c0]
imul rcx, r9
mov r15, qword [0x14029a8c8]
imul r15, r10
add r15, rcx
add r14, r11
mov rcx, r14
add rcx, r15
mov r14, qword [0x14029a8d0]
mov r15, qword [0x14029a8d8]
shrd r15, r14, 0x1c
xor r15, rsi
mov r14, rcx
cmp rcx, r15
jne 0x1400239b0
movzx eax, byte [0x14029a8e0]
movzx ecx, byte [0x14029a8e1]
imul eax, eax, 0x2a
mov edx, ecx
shl edx, 6
sub edx, ecx
mov ecx, edx
add cl, al
add cl, 0x7c
mov byte [rbx + 0x19], cl
mov eax, dword [0x14029a8e4]
mov ecx, dword [0x14029a8e8]
shrd ecx, eax, 0x12
xor ecx, 0xe786be80
jmp 0x140023c20
mov eax, dword [0x1402bcbf8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp byte [rax + 0x60c], 0
je 0x140023cb6
mov eax, dword [0x1402bcbf8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
lea rbx, [rax + 0x5f1]
mov al, byte [0x14029a8f0]
mov cl, byte [0x14029a8f1]
shr cl, 7
add al, al
or al, cl
xor al, 0x2e
cmp byte [rbx + 0x1a], al
je 0x140023c0a
mov qword [rbp - 0x10], r12
mov qword [rbp - 8], rdi
movabs rax, 0x647080ecebe4ce2a
movabs rdx, 0x8d8fa70934f65e60
movabs r8, 0xf528f89d50252455
movabs r9, 0x2d33ad0d35bfe2ec
movabs r10, 0xd7276c69df8376e0
movabs r11, 0x61a8b559bdcbc791
movabs rsi, 0xa2d49c00f6d5b94e
movabs r14, 0x1494ae80f3b8271e
movabs r15, 0x671583aeb3d87944
xor r13d, r13d
imul ecx, dword [0x14029a8f8], 0xde7343b8
imul r12d, dword [0x14029a900], 0x84ed2d92
add r12d, ecx
mov ecx, r12d
add cl, 0xb
mov r12, r13
shl r12, cl
mov rcx, qword [0x14029a908]
shr rcx, 0x32
xor ecx, 0xed
and r12d, ecx
mov rcx, qword [0x14029a910]
imul rcx, rax
mov rdi, qword [0x14029a918]
imul rdi, rdx
add rdi, rcx
add rdi, r8
mov ecx, r12d
shr rdi, cl
mov ecx, edi
xor byte [rbx + r13], dil
mov rcx, qword [0x14029a920]
imul rcx, r9
mov rdi, qword [0x14029a928]
imul rdi, r10
add rdi, rcx
add r13, r11
add r13, rdi
mov rcx, qword [0x14029a930]
imul rcx, rsi
mov rdi, qword [0x14029a938]
imul rdi, r14
add rdi, rcx
add rdi, r15
cmp r13, rdi
jne 0x140023b3c
movzx eax, byte [0x14029a940]
movzx ecx, byte [0x14029a941]
shl eax, 3
lea eax, [rax + rax*4]
shl ecx, 2
lea ecx, [rcx + rcx*2]
add cl, al
add cl, 0xb0
mov byte [rbx + 0x1a], cl
mov rdi, qword [rbp - 8]
mov r12, qword [rbp - 0x10]
mov eax, dword [0x14029a944]
mov ecx, dword [0x14029a948]
shrd ecx, eax, 0x11
xor ecx, 0x5f8ff1a7
mov r14, qword [rbp + 0x70]
mov dword [r14], ecx
add r14, 8
sub rsp, 0x20
mov rcx, rbx
call fcn.1401b6280
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.140002e0c
add rsp, 0x20
xorps xmm0, xmm0
movups xmmword [r12], xmm0
mov rax, rdi
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rcx, rdx
mov rdx, rax
sub rsp, 0x20
call fcn.1400d883c
add rsp, 0x20
jmp 0x140023c51
mov al, byte [0x1402c045e]
inc al
mov ecx, dword [0x1402bcbf8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
and al, 1
mov byte [rcx + 0x5f0], al
sub rsp, 0x20
lea rcx, [0x1400351a4]
call fcn.1400d8bb4
add rsp, 0x20
jmp 0x14002391f
mov eax, dword [0x1402bcbf8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov byte [rax + 0x60c], 1
sub rsp, 0x20
lea rcx, [0x140035231]
call fcn.1400d8bb4
add rsp, 0x20
jmp 0x140023a9f
sub rsp, 0x20
call fcn.1401aec6c
int3