Function at 0x140042d8c
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x98
lea rbp, [rsp + 0x80]
movaps xmmword [rbp], xmm6
mov qword [rbp - 0x70], r8
mov qword [rbp - 0x58], rdx
mov qword [rbp - 0x50], rcx
xorps xmm0, xmm0
movaps xmmword [rbp - 0x20], xmm0
mov dword [rbp - 0x10], 0
mov eax, dword [0x1400c7554]
cmp dword [0x1400c7550], 0xa
setl cl
lea edx, [rax + 1]
imul edx, eax
test dl, 1
sete al
or al, cl
mov byte [rbp - 1], al
mov byte [rbp - 2], al
xor eax, eax
lea rcx, [0x1400585b4]
movsxd rdx, dword [rax + rcx]
xor dword [rbp + rdx*4 - 0x20], 0x1e27
add rax, 4
cmp rax, 0x10
jne 0x140042df2
add qword [rbp - 0x58], 4
mov rax, qword [rbp - 0x50]
add rax, 0x20
mov qword [rbp - 0x68], rax
mov eax, 0x2e15
mov cl, 1
mov dword [rbp - 0xc], ecx
xorps xmm6, xmm6
xor ecx, ecx
mov qword [rbp - 0x60], rcx
mov edx, dword [rbp - 0x14]
mov r13d, dword [rbp - 0x10]
mov ecx, 0x601c
xor r13d, ecx
cmp eax, 0x7793
jg 0x140042e59
cmp eax, 0x28d2
je 0x140043498
cmp eax, 0x2e15
jne 0x140042e3b
jmp 0x140043450
cmp eax, 0x7794
je 0x140042e6c
cmp eax, 0x7e1d
jne 0x140042e3b
jmp 0x140043136
mov eax, 0x20
call fcn.14004f010
sub rsp, rax
mov r12, rsp
mov eax, 0x10
call fcn.14004f010
sub rsp, rax
mov qword [rbp - 0x30], rsp
mov eax, 0x10
call fcn.14004f010
sub rsp, rax
mov qword [rbp - 0x28], rsp
mov eax, 0x10
call fcn.14004f010
sub rsp, rax
mov rdi, rsp
mov eax, 0x10
call fcn.14004f010
sub rsp, rax
mov rbx, rsp
mov eax, 0x10
call fcn.14004f010
sub rsp, rax
mov qword [rbp - 0x38], rsp
mov eax, 0x10
call fcn.14004f010
sub rsp, rax
mov qword [rbp - 0x40], rsp
mov eax, 0x210
call fcn.14004f010
sub rsp, rax
mov qword [rbp - 0x48], rsp
sub rsp, 0x20
mov dword [rbp - 8], edx
call fcn.140022d73
mov rcx, rax
mov edx, 0x76975741
call fcn.1400271d0
add rsp, 0x20
mov rsi, rax
sub rsp, 0x20
call fcn.140020f9c
add rsp, 0x20
mov r15, rax
sub rsp, 0x20
mov rcx, rax
mov edx, 0x41a77db9
call fcn.1400271d0
add rsp, 0x20
mov qword [rbp - 0x78], rax
sub rsp, 0x20
mov rcx, r15
mov edx, 0xa63dba33
call fcn.1400271d0
add rsp, 0x20
mov r14, rax
movaps xmm0, xmmword [0x140058590]
movaps xmmword [r12], xmm0
mov rax, qword [0x14005859e]
mov qword [r12 + 0xe], rax
sub rsp, 0x20
mov r15, qword [rbp - 0x30]
mov rcx, r15
mov rdx, r12
call fcn.14001abc3
add rsp, 0x20
mov r12, qword [rbp - 0x28]
mov word [r12], 0xbb49
mov dword [rbx], 0xc3e3ff41
add rsi, 5
mov qword [rdi], rsi
sub rsp, 0x20
mov edx, 0x13
xor ecx, ecx
mov r8d, 0x3000
mov r9d, 4
call r14
add rsp, 0x20
mov rsi, rax
sub rsp, 0x20
mov r8d, 5
mov rcx, rax
lea rdx, [0x14005122c]
call fcn.140020551
add rsp, 0x20
lea rcx, [rsi + 5]
sub rsp, 0x20
mov r8d, 2
mov rdx, r12
call fcn.140020551
add rsp, 0x20
lea rcx, [rsi + 7]
sub rsp, 0x20
mov r8d, 8
mov rdx, rdi
call fcn.140020551
add rsp, 0x20
lea rcx, [rsi + 0xf]
sub rsp, 0x20
mov r8d, 4
mov rdx, rbx
call fcn.140020551
add rsp, 0x20
mov r9, qword [rbp - 0x38]
mov dword [r9], 0
sub rsp, 0x20
mov edx, 0x1e
mov rcx, rsi
mov r8d, 0x20
call qword [rbp - 0x78]
add rsp, 0x20
xor r12d, r12d
mov r9, qword [rbp - 0x40]
mov qword [r9], r12
sub rsp, 0x20
xor ecx, ecx
xor edx, edx
mov r8, r15
mov rdi, r9
call rsi
add rsp, 0x20
mov rcx, qword [rdi]
sub rsp, 0x20
mov edx, 0xbe7384ef
call fcn.1400271d0
add rsp, 0x20
mov rsi, rax
sub rsp, 0x20
mov r8d, 0x208
mov rbx, qword [rbp - 0x48]
mov rcx, rbx
xor edx, edx
call fcn.140003c53
add rsp, 0x20
mov rdi, qword [rbp - 0x70]
mov rcx, qword [rdi + 8]
sub rsp, 0x20
mov r8d, 0x104
lea rdx, [0x140058f00]
call fcn.140017619
mov r8d, 0x104
mov rcx, rbx
mov rdx, qword [rbp - 0x58]
call rsi
add rsp, 0x20
mov rcx, qword [rdi + 8]
sub rsp, 0x20
mov r8d, 0x104
mov rdx, rbx
call fcn.140018e34
add rsp, 0x20
mov rcx, qword [rdi + 8]
sub rsp, 0x20
mov edx, 0x104
call fcn.1400167e7
mov edx, dword [rbp - 8]
add rsp, 0x20
lea ecx, [rax + rax]
mov word [rdi], cx
add eax, eax
add eax, 2
mov word [rdi + 2], ax
mov rax, qword [rbp - 0x50]
mov dword [rax], 0x30
mov qword [rax + 8], r12
mov dword [rax + 0x18], 0x40
mov qword [rax + 0x10], rdi
mov rax, qword [rbp - 0x68]
movups xmmword [rax], xmm6
mov eax, r13d
jmp 0x140042e3b
mov eax, 0x20
call fcn.14004f010
sub rsp, rax
mov rsi, rsp
mov eax, 0x10
call fcn.14004f010
sub rsp, rax
mov qword [rbp - 0x30], rsp
mov eax, 0x10
call fcn.14004f010
sub rsp, rax
mov r14, rsp
mov eax, 0x10
call fcn.14004f010
sub rsp, rax
mov r12, rsp
mov eax, 0x10
call fcn.14004f010
sub rsp, rax
mov rdi, rsp
mov eax, 0x10
call fcn.14004f010
sub rsp, rax
mov qword [rbp - 0x38], rsp
mov eax, 0x10
call fcn.14004f010
sub rsp, rax
mov qword [rbp - 0x40], rsp
mov eax, 0x210
call fcn.14004f010
sub rsp, rax
mov qword [rbp - 0x48], rsp
sub rsp, 0x20
mov dword [rbp - 8], edx
call fcn.140022d73
mov rcx, rax
mov edx, 0x76975741
call fcn.1400271d0
add rsp, 0x20
mov r15, rax
sub rsp, 0x20
call fcn.140020f9c
add rsp, 0x20
mov r13, rax
sub rsp, 0x20
mov rcx, rax
mov edx, 0x41a77db9
call fcn.1400271d0
add rsp, 0x20
mov qword [rbp - 0x28], rax
sub rsp, 0x20
mov rcx, r13
mov edx, 0xa63dba33
call fcn.1400271d0
add rsp, 0x20
mov rbx, rax
movaps xmm0, xmmword [0x140058590]
movaps xmmword [rsi], xmm0
mov rax, qword [0x14005859e]
mov qword [rsi + 0xe], rax
sub rsp, 0x20
mov r13, qword [rbp - 0x30]
mov rcx, r13
mov rdx, rsi
call fcn.14001abc3
add rsp, 0x20
mov word [r14], 0xbb49
mov dword [rdi], 0xc3e3ff41
add r15, 5
mov qword [r12], r15
sub rsp, 0x20
mov edx, 0x13
xor ecx, ecx
mov r8d, 0x3000
mov r9d, 4
call rbx
add rsp, 0x20
mov rsi, rax
sub rsp, 0x20
mov r8d, 5
mov rcx, rax
lea rdx, [0x14005122c]
call fcn.140020551
add rsp, 0x20
lea rcx, [rsi + 5]
sub rsp, 0x20
mov r8d, 2
mov rdx, r14
call fcn.140020551
add rsp, 0x20
lea rcx, [rsi + 7]
sub rsp, 0x20
mov r8d, 8
mov rdx, r12
call fcn.140020551
add rsp, 0x20
lea rcx, [rsi + 0xf]
sub rsp, 0x20
mov r8d, 4
mov rdx, rdi
call fcn.140020551
add rsp, 0x20
mov r9, qword [rbp - 0x38]
mov dword [r9], 0
sub rsp, 0x20
mov edx, 0x1e
mov rcx, rsi
mov r8d, 0x20
call qword [rbp - 0x28]
add rsp, 0x20
xor r15d, r15d
mov r9, qword [rbp - 0x40]
mov qword [r9], r15
sub rsp, 0x20
xor ecx, ecx
xor edx, edx
mov r8, r13
mov rdi, r9
call rsi
add rsp, 0x20
mov rcx, qword [rdi]
sub rsp, 0x20
mov edx, 0xbe7384ef
call fcn.1400271d0
add rsp, 0x20
mov rsi, rax
sub rsp, 0x20
mov r8d, 0x208
mov rbx, qword [rbp - 0x48]
mov rcx, rbx
xor edx, edx
call fcn.140003c53
add rsp, 0x20
mov rdi, qword [rbp - 0x70]
mov rcx, qword [rdi + 8]
sub rsp, 0x20
mov r8d, 0x104
lea rdx, [0x140058f00]
call fcn.140017619
mov r8d, 0x104
mov rcx, rbx
mov rdx, qword [rbp - 0x58]
call rsi
add rsp, 0x20
mov rcx, qword [rdi + 8]
sub rsp, 0x20
mov r8d, 0x104
mov rdx, rbx
call fcn.140018e34
add rsp, 0x20
mov rcx, qword [rdi + 8]
sub rsp, 0x20
mov edx, 0x104
call fcn.1400167e7
add rsp, 0x20
lea ecx, [rax + rax]
mov word [rdi], cx
lea edx, [rax + rax]
add edx, 0xa4
and edx, 0x3f5c
mov ebx, 0x3f5b
sub ebx, ecx
or ebx, 0xffffc0a2
lea eax, [rdx + rax*2]
mov edx, dword [rbp - 8]
add eax, ebx
add eax, 3
mov word [rdi + 2], ax
mov rax, qword [rbp - 0x50]
mov dword [rax], 0x30
mov qword [rax + 8], r15
mov dword [rax + 0x18], 0x40
mov qword [rax + 0x10], rdi
mov rax, qword [rbp - 0x68]
movups xmmword [rax], xmm6
mov eax, dword [0x1400c7558]
lea ecx, [rax + 1]
imul ecx, eax
mov eax, edx
xor eax, 0x52f6
cmp byte [rbp - 0x60], 0
cmove edx, eax
test cl, 1
mov eax, 0x6995
mov ecx, 0x36d3
cmove eax, ecx
cmp dword [0x1400c755c], 0xa
cmovl eax, ecx
xor eax, dword [rbp - 0x18]
mov cl, 1
mov qword [rbp - 0x60], rcx
jmp 0x140042e2f
mov dword [rbp - 0x14], edx
mov al, byte [rbp - 2]
test byte [rbp - 0xc], 1
lea rdx, [0x1400585a8]
je 0x140043478
xor eax, eax
movsxd rcx, dword [rax + rdx]
xor byte [rbp + rcx*4 - 0x20], 0x26
add rax, 4
cmp rax, 0xc
jne 0x140043465
cmp byte [rbp - 1], 0
mov eax, 0x69b3
mov ecx, 0x603a
cmovne eax, ecx
xor eax, dword [rbp - 0x20]
mov dword [rbp - 0xc], 0
jmp 0x140042e2c
mov dword [rbp - 0x14], edx
movaps xmm6, xmmword [rbp]
lea rsp, [rbp + 0x18]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret