Function at 0x14003c1c0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x50]
movups xmmword [rbp - 0x10], xmm6
mov qword [rbp - 0x18], 0xfffffffffffffffe
mov dword [rbp - 0x34], r8d
mov qword [rbp - 0x48], rdx
mov r12, rcx
mov qword [rbp - 0x40], rcx
sub rsp, 0x20
call fcn.1400bcce0
call fcn.1400bcd50
call fcn.1400bcdd0
call fcn.1400bce50
add rsp, 0x20
mov eax, dword [0x140381898]
mov r13d, dword [0x14038189c]
mov qword [rbp - 0x28], r12
jmp 0x14003c222
mov eax, esi
mov esi, eax
mov dword [rbp - 0x1c], r13d
imul eax, dword [0x1403046c0], 0x9089e580
imul ecx, dword [0x1403046c4], 0x32aa6ca1
add eax, ecx
add eax, 0x80d64845
shl rax, 4
lea rax, [rax + rax*2]
call fcn.1401501b0
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x30], rax
sub rsp, 0x20
call fcn.1400bcec0
add rsp, 0x20
cdqe
lea rcx, [0x140162620]
mov r13d, dword [rcx + rax*4]
xor r13d, esi
imul r13d, esi
sub rsp, 0x20
call fcn.1400bcf50
add rsp, 0x20
cdqe
lea rcx, [0x14016262c]
and r13d, dword [rcx + rax*4]
sub rsp, 0x20
call fcn.1400bcfd0
add rsp, 0x20
mov eax, dword [0x1403046c8]
mov r14d, dword [0x1403046cc]
shrd r14d, eax, 2
xor r14d, 0xff941f8
sub rsp, 0x20
call fcn.1400bd050
add rsp, 0x20
cdqe
lea rcx, [0x140162638]
mov r12d, dword [rcx + rax*4]
nop word cs:[rax + rax]
cmp dword [rbp - 0x1c], r12d
setl dil
cmp r13d, r14d
sete sil
sub rsp, 0x20
call fcn.1400bd0d0
add rsp, 0x20
cdqe
lea rcx, [0x140162644]
movzx r15d, byte [rax + rcx]
xor r15b, sil
sub rsp, 0x20
call fcn.1400bd160
add rsp, 0x20
cdqe
lea rcx, [0x140162647]
movzx ebx, byte [rax + rcx]
xor bl, dil
xor dil, sil
mov eax, ebx
and al, r15b
mov ecx, edi
xor cl, 1
test cl, al
jne 0x14003c2e0
sub rsp, 0x20
call fcn.1400bd1e0
add rsp, 0x20
or bl, r15b
mov esi, edi
xor sil, bl
lea r15, [0x14016264d]
lea r12, [0x140162650]
nop
sub rsp, 0x20
call fcn.1400bd270
add rsp, 0x20
cdqe
movzx r14d, byte [rax + r15]
xor r14b, sil
sub rsp, 0x20
call fcn.1400bd2e0
add rsp, 0x20
cdqe
movzx eax, byte [rax + r12]
xor al, bl
test dil, al
jne 0x14003c398
test r14b, 1
je 0x14003c360
sub rsp, 0x20
mov r12, qword [rbp - 0x28]
mov rcx, r12
call fcn.14005fe60
call fcn.1400bd360
call fcn.1400bd3e0
call fcn.1400bd470
call fcn.1400bd4e0
add rsp, 0x20
mov esi, dword [0x140381898]
mov edi, dword [0x14038189c]
sub rsp, 0x20
call fcn.1400bd570
add rsp, 0x20
cdqe
lea rcx, [0x140162678]
mov eax, dword [rcx + rax*4]
xor eax, esi
mov ebx, eax
imul ebx, esi
sub rsp, 0x20
call fcn.1400bd5f0
add rsp, 0x20
cdqe
lea rcx, [0x140162684]
and ebx, dword [rcx + rax*4]
sub rsp, 0x20
call fcn.1400bd660
add rsp, 0x20
imul r14d, dword [0x1403046d8], 0x405f4d1
imul r15d, dword [0x1403046dc], 0xb11b9d05
sub rsp, 0x20
call fcn.1400bd6e0
add rsp, 0x20
cdqe
lea rcx, [0x140162690]
cmp edi, dword [rcx + rax*4]
lea r13, [0x1401626e4]
jl 0x14003c53b
mov eax, r15d
mov ecx, r14d
add eax, ecx
add eax, 0x73dc885c
cmp ebx, eax
je 0x14003c53b
nop word cs:[rax + rax]
sub rsp, 0x20
mov rcx, r12
call fcn.14005fe60
call fcn.1400bd760
call fcn.1400bd7e0
call fcn.1400bd870
call fcn.1400bd900
mov rcx, r12
call fcn.14005fe60
call fcn.1400bd990
call fcn.1400bda20
call fcn.1400bdab0
call fcn.1400bdb30
add rsp, 0x20
mov esi, dword [0x140381898]
mov edi, dword [0x14038189c]
sub rsp, 0x20
call fcn.1400bdbb0
add rsp, 0x20
cdqe
mov eax, dword [r13 + rax*4]
xor eax, esi
mov ebx, eax
imul ebx, esi
sub rsp, 0x20
call fcn.1400bdc20
add rsp, 0x20
cdqe
lea rcx, [0x1401626f0]
and ebx, dword [rcx + rax*4]
sub rsp, 0x20
call fcn.1400bdcb0
add rsp, 0x20
mov r14d, dword [0x1403046f0]
mov r15d, dword [0x1403046f4]
sub rsp, 0x20
call fcn.1400bdd30
add rsp, 0x20
cdqe
lea rcx, [0x1401626fc]
cmp edi, dword [rcx + rax*4]
jl 0x14003c53b
shld r14d, r15d, 0x19
xor r14d, 0xde2ece81
cmp ebx, r14d
jne 0x14003c470
mov r13d, edi
mov edi, dword [0x1403818a0]
mov r15d, dword [0x1403818a4]
sub rsp, 0x20
call fcn.1400bdda0
add rsp, 0x20
cdqe
lea rcx, [0x140162708]
mov eax, dword [rcx + rax*4]
xor eax, edi
mov ebx, eax
imul ebx, edi
sub rsp, 0x20
call fcn.1400bde30
add rsp, 0x20
cdqe
mov edi, ebx
lea rcx, [0x140162714]
and edi, dword [rcx + rax*4]
sub rsp, 0x20
call fcn.1400bdeb0
add rsp, 0x20
imul ebx, dword [0x1403046f8], 0xac16f7c3
imul r14d, dword [0x1403046fc], 0xcbac989c
sub rsp, 0x20
call fcn.1400bdf30
add rsp, 0x20
cdqe
lea rcx, [0x140162720]
cmp r15d, dword [rcx + rax*4]
jl 0x14003c8c8
mov eax, r14d
mov ecx, ebx
add eax, ecx
add eax, 0x35fa8244
cmp edi, eax
je 0x14003c8c8
sub rsp, 0x20
call fcn.1400bf350
add rsp, 0x20
cdqe
lea rcx, [0x140162870]
mov eax, dword [rcx + rax*4]
xor eax, esi
mov edi, eax
imul edi, esi
sub rsp, 0x20
call fcn.1400bf3c0
add rsp, 0x20
cdqe
lea rcx, [0x14016287c]
and edi, dword [rcx + rax*4]
mov dword [rbp - 0x1c], edi
sub rsp, 0x20
call fcn.1400bf440
add rsp, 0x20
mov eax, dword [0x140304788]
mov ebx, dword [0x14030478c]
shrd ebx, eax, 0x1d
xor ebx, 0x65124b8
sub rsp, 0x20
call fcn.1400bf4d0
add rsp, 0x20
cdqe
lea rcx, [0x140162888]
mov r15d, dword [rcx + rax*4]
nop word cs:[rax + rax]
cmp r13d, r15d
setl dil
cmp dword [rbp - 0x1c], ebx
mov esi, r13d
sete r13b
sub rsp, 0x20
call fcn.1400bf560
add rsp, 0x20
cdqe
lea rcx, [0x140162894]
movzx r12d, byte [rax + rcx]
xor r12b, r13b
sub rsp, 0x20
call fcn.1400bf5f0
add rsp, 0x20
cdqe
lea rcx, [0x140162897]
movzx r14d, byte [rax + rcx]
xor r14b, dil
xor dil, r13b
mov r13d, esi
mov eax, r14d
and al, r12b
mov ecx, edi
xor cl, 1
test cl, al
jne 0x14003c660
sub rsp, 0x20
call fcn.1400bf670
add rsp, 0x20
mov ebx, r14d
or bl, r12b
mov esi, edi
xor sil, bl
lea r15, [0x14016289d]
lea r12, [0x1401628a0]
nop dword [rax + rax]
sub rsp, 0x20
call fcn.1400bf700
add rsp, 0x20
cdqe
movzx r14d, byte [rax + r15]
xor r14b, sil
sub rsp, 0x20
call fcn.1400bf780
add rsp, 0x20
cdqe
movzx eax, byte [rax + r12]
xor al, bl
test dil, al
jne 0x14003c728
test r14b, 1
je 0x14003c6f0
sub rsp, 0x20
mov r12, qword [rbp - 0x28]
mov rcx, r12
call fcn.14005fe60
call fcn.1400bf800
call fcn.1400bf890
call fcn.1400bf920
call fcn.1400bf990
add rsp, 0x20
mov esi, dword [0x140381898]
mov edi, dword [0x14038189c]
sub rsp, 0x20
call fcn.1400bfa10
add rsp, 0x20
cdqe
lea rcx, [0x1401628c8]
mov eax, dword [rcx + rax*4]
xor eax, esi
mov ebx, eax
imul ebx, esi
sub rsp, 0x20
call fcn.1400bfa90
add rsp, 0x20
cdqe
lea rcx, [0x1401628d4]
and ebx, dword [rcx + rax*4]
sub rsp, 0x20
call fcn.1400bfb20
add rsp, 0x20
mov r14d, dword [0x140304798]
mov r15d, dword [0x14030479c]
sub rsp, 0x20
call fcn.1400bfba0
add rsp, 0x20
movsxd rcx, eax
mov r13d, edi
mov eax, esi
lea rdx, [0x1401628e0]
cmp edi, dword [rdx + rcx*4]
jl 0x14003c222
shld r14d, r15d, 2
xor r14d, 0xee69689c
mov r13d, edi
mov eax, esi
cmp ebx, r14d
je 0x14003c222
nop
sub rsp, 0x20
mov rcx, r12
call fcn.14005fe60
call fcn.1400bfc20
call fcn.1400bfc90
call fcn.1400bfd10
call fcn.1400bfda0
mov rcx, r12
call fcn.14005fe60
call fcn.1400bfe10
call fcn.1400bfe90
call fcn.1400bff10
call fcn.1400bff80
add rsp, 0x20
mov esi, dword [0x140381898]
mov r13d, dword [0x14038189c]
sub rsp, 0x20
call fcn.1400c0010
add rsp, 0x20
cdqe
lea rcx, [0x140162934]
mov eax, dword [rcx + rax*4]
xor eax, esi
mov edi, eax
imul edi, esi
sub rsp, 0x20
call fcn.1400c00a0
add rsp, 0x20
cdqe
lea rcx, [0x140162940]
and edi, dword [rcx + rax*4]
sub rsp, 0x20
call fcn.1400c0120
add rsp, 0x20
mov eax, dword [0x1403047b0]
mov ebx, dword [0x1403047b4]
shrd ebx, eax, 0x1a
xor ebx, 0x3afa7457
sub rsp, 0x20
call fcn.1400c01b0
add rsp, 0x20
cdqe
lea rcx, [0x14016294c]
cmp r13d, dword [rcx + rax*4]
jl 0x14003c220
mov eax, esi
cmp edi, ebx
jne 0x14003c7f0
jmp 0x14003c222
sub rsp, 0x20
call fcn.1400bdfb0
call fcn.1400be040
call fcn.1400be0c0
call fcn.1400be130
add rsp, 0x20
xorps xmm6, xmm6
lea rsi, [0x140162810]
xor r12d, r12d
mov r15, qword [rbp - 0x30]
jmp 0x14003c93c
mov rdi, r12
add rdi, r15
sub rsp, 0x20
call fcn.1400bdfb0
call fcn.1400be040
call fcn.1400be0c0
call fcn.1400be130
add rsp, 0x20
mov r12, rdi
movabs rax, 0x7fffffffffffffff
cmp rdi, rax
mov r15, qword [rbp - 0x30]
jae 0x14003cce1
movups xmmword [r15 + 0x20], xmm6
movups xmmword [r15 + 0x10], xmm6
movups xmmword [r15], xmm6
mov rax, qword [0x140304708]
movabs rcx, 0x78f7b6abe5bd679b
imul rax, rcx
mov rcx, qword [0x140304710]
movabs rdx, 0x29c93cdae7c568c0
imul rcx, rdx
add rcx, rax
mov r9, rcx
movabs rax, 0x722c6d640cf5046e
add r9, rax
nop
sub rsp, 0x20
mov rcx, qword [rbp - 0x48]
mov rdx, r12
mov r8, r15
call qword [0x140381540]
add rsp, 0x20
nop
mov r13, rax
mov ebx, dword [0x1403818a0]
mov edi, dword [0x1403818a4]
sub rsp, 0x20
call fcn.1400be1c0
add rsp, 0x20
cdqe
lea rcx, [0x140162750]
mov eax, dword [rcx + rax*4]
xor eax, ebx
mov r14d, eax
imul r14d, ebx
sub rsp, 0x20
call fcn.1400be250
add rsp, 0x20
cdqe
mov ebx, r14d
lea rcx, [0x14016275c]
and ebx, dword [rcx + rax*4]
sub rsp, 0x20
call fcn.1400be2c0
call fcn.1400be330
call fcn.1400be3a0
add rsp, 0x20
mov rax, qword [0x140304720]
mov rcx, qword [0x140304728]
shrd rcx, rax, 0x3c
movabs rax, 0x23555ea6f5f26d73
xor rcx, rax
cmp r13, rcx
je 0x14003cce1
mov eax, dword [r15 + 0x24]
cmp eax, 0x20
jge 0x14003ca50
cmp eax, 4
je 0x14003ca5e
jmp 0x14003cc7a
cmp eax, 0x40
jge 0x14003ca58
cmp eax, 0x20
jne 0x14003cc7a
mov r14d, dword [r15 + 0x28]
and r14d, dword [rbp - 0x34]
sub rsp, 0x20
call fcn.1400be430
add rsp, 0x20
mov eax, dword [0x140304730]
mov ecx, dword [0x140304734]
shrd ecx, eax, 0x1f
xor ecx, 0x595dca2e
cmp r14d, ecx
je 0x14003cc7a
sub rsp, 0x20
call fcn.1400be4c0
call fcn.1400be530
call fcn.1400be5b0
call fcn.1400be630
add rsp, 0x20
nop
sub rsp, 0x20
mov rcx, qword [rbp - 0x28]
mov rdx, r15
call fcn.140060590
add rsp, 0x20
nop
mov edi, dword [0x1403818a8]
mov r15d, dword [0x1403818ac]
sub rsp, 0x20
call fcn.1400be6a0
add rsp, 0x20
cdqe
lea rcx, [0x140162798]
mov eax, dword [rcx + rax*4]
xor eax, edi
mov ebx, eax
imul ebx, edi
sub rsp, 0x20
call fcn.1400be720
add rsp, 0x20
cdqe
mov edi, ebx
lea rcx, [0x1401627a4]
and edi, dword [rcx + rax*4]
sub rsp, 0x20
call fcn.1400be7b0
add rsp, 0x20
mov ebx, dword [0x140304740]
mov r14d, dword [0x140304744]
sub rsp, 0x20
call fcn.1400be820
add rsp, 0x20
cdqe
lea rcx, [0x1401627b0]
cmp r15d, dword [rcx + rax*4]
jl 0x14003cc21
shld ebx, r14d, 0x16
xor ebx, 0x1c0657dd
cmp edi, ebx
je 0x14003cc21
nop dword [rax]
nop
sub rsp, 0x20
mov rcx, qword [rbp - 0x28]
mov rdi, qword [rbp - 0x30]
mov rdx, rdi
call fcn.140060590
add rsp, 0x20
nop
nop
sub rsp, 0x20
mov rcx, qword [rbp - 0x28]
mov rdx, rdi
call fcn.140060590
add rsp, 0x20
nop
mov edi, dword [0x1403818a8]
mov r15d, dword [0x1403818ac]
sub rsp, 0x20
call fcn.1400be890
add rsp, 0x20
cdqe
lea rcx, [0x1401627bc]
mov eax, dword [rcx + rax*4]
xor eax, edi
mov ebx, eax
imul ebx, edi
sub rsp, 0x20
call fcn.1400be900
add rsp, 0x20
cdqe
mov edi, ebx
lea rcx, [0x1401627c8]
and edi, dword [rcx + rax*4]
sub rsp, 0x20
call fcn.1400be980
add rsp, 0x20
mov ebx, dword [0x140304748]
mov r14d, dword [0x14030474c]
sub rsp, 0x20
call fcn.1400bea00
add rsp, 0x20
cdqe
lea rcx, [0x1401627d4]
cmp r15d, dword [rcx + rax*4]
jl 0x14003cc21
shld ebx, r14d, 9
xor ebx, 0x8d5cac0e
cmp edi, ebx
jne 0x14003cb60
mov edi, dword [0x1403818a0]
mov r14d, dword [0x1403818a4]
sub rsp, 0x20
call fcn.1400bea70
add rsp, 0x20
cdqe
lea rcx, [0x1401627e0]
mov ebx, dword [rcx + rax*4]
xor ebx, edi
imul ebx, edi
sub rsp, 0x20
call fcn.1400beae0
add rsp, 0x20
cdqe
lea rcx, [0x1401627ec]
and ebx, dword [rcx + rax*4]
sub rsp, 0x20
call fcn.1400beb50
call fcn.1400bebe0
add rsp, 0x20
mov edi, r14d
sub rsp, 0x20
call fcn.1400bec50
call fcn.1400becd0
add rsp, 0x20
nop dword [rax]
mov rax, qword [rbp - 0x30]
mov r15, qword [rax + 0x18]
sub rsp, 0x20
call fcn.1400bed50
add rsp, 0x20
mov r14d, dword [0x140304760]
mov r13d, dword [0x140304764]
sub rsp, 0x20
call fcn.1400bedd0
add rsp, 0x20
cdqe
cmp edi, dword [rsi + rax*4]
jle 0x14003c900
shld r14d, r13d, 3
xor r14d, 0x2b5d1e01
cmp ebx, r14d
jne 0x14003cc90
jmp 0x14003c900
sub rsp, 0x20
call fcn.1400bee50
call fcn.1400beec0
add rsp, 0x20
mov rax, qword [rbp - 0x40]
movups xmm6, xmmword [rbp - 0x10]
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret