Function at 0x14003c960
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
push rax
mov rbp, rsp
mov r15, r8
mov rdi, rcx
xor eax, eax
test al, al
je 0x14003c990
mov eax, 0x10
call fcn.1400ed360
sub rsp, rax
nop dword [rax]
mov ecx, dword [0x141dc2818]
sub ecx, dword [0x141dc281c]
or ecx, 0x31effcbd
and ecx, 0xfdfffefd
mov eax, 0x10
call fcn.1400ed360
sub rsp, rax
mov rbx, rsp
cmp ecx, 0x8b2ef354
jb 0x14003c990
mov r10, r9
mov qword [rbp], rdx
mov eax, dword [0x141dc2820]
add eax, dword [0x141dc2824]
imul eax, eax, 0xea6b8efb
xor eax, 0x3a3b7a36
imul rax, rax, 0x4c1ac3b1
shr rax, 0x3d
cmp eax, 0x2476674f
jne 0x14003ca40
mov eax, 0x10
call fcn.1400ed360
sub rsp, rax
mov eax, 0x10
call fcn.1400ed360
sub rsp, rax
mov eax, 0x20
call fcn.1400ed360
sub rsp, rax
mov eax, 0x40
call fcn.1400ed360
sub rsp, rax
mov eax, 0x40
call fcn.1400ed360
sub rsp, rax
mov eax, 0x10
call fcn.1400ed360
sub rsp, rax
nop
mov eax, dword [0x141dc2828]
xor eax, dword [0x141dc282c]
or eax, 0x658e1761
imul rax, rax, 0xd0d221d
shr rax, 0x3b
imul r9d, eax, 0x84377d0f
mov eax, 0x10
call fcn.1400ed360
sub rsp, rax
mov r12, rsp
mov eax, 0x10
call fcn.1400ed360
sub rsp, rax
mov rcx, rsp
mov eax, 0x20
call fcn.1400ed360
sub rsp, rax
mov r8, rsp
mov eax, 0x40
call fcn.1400ed360
sub rsp, rax
mov r14, rsp
mov eax, 0x40
call fcn.1400ed360
sub rsp, rax
mov r13, rsp
mov eax, 0x10
call fcn.1400ed360
sub rsp, rax
mov rdx, rsp
cmp r9d, 0x9d2f6c00
je 0x14003ca40
mov eax, dword [0x141dc2830]
or eax, dword [0x141dc2834]
imul eax, eax, 0xae827d95
cmp eax, 0x734445eb
jne 0x14003cb00
mov eax, 0x20
call fcn.1400ed360
sub rsp, rax
nop word cs:[rax + rax]
mov eax, dword [0x141dc2838]
xor eax, dword [0x141dc283c]
xor eax, 0x411ff64
imul r9d, eax, 0x923eb127
mov eax, 0x20
call fcn.1400ed360
sub rsp, rax
mov rsi, rsp
cmp r9d, 0x1ee82d66
jb 0x14003cb00
mov r9, qword [rbp]
cmp r9, 0x41
jae 0x14003cb7b
mov dword [rdx], r9d
mov qword [rsi], rdx
mov qword [rsi + 8], 4
mov eax, dword [0x141dc2848]
sub eax, dword [0x141dc284c]
xor eax, 0x74cd7ad7
imul eax, eax, 0xe3147e09
or eax, 0xaa6cbd8c
cmp eax, 0x2f878220
mov r14, r9
mov r12, r10
jae 0x14003cd98
jmp 0x14003cde5
xorps xmm0, xmm0
movups xmmword [r13 + 0x30], xmm0
movups xmmword [r13 + 0x20], xmm0
movups xmmword [r13 + 0x10], xmm0
movups xmmword [r13], xmm0
movups xmmword [r14 + 0x30], xmm0
movups xmmword [r14 + 0x20], xmm0
movups xmmword [r14 + 0x10], xmm0
movups xmmword [r14], xmm0
mov dword [rcx], r9d
mov qword [r8], rcx
mov qword [r8 + 8], 4
mov qword [r8 + 0x10], r15
mov qword [r8 + 0x18], r10
sub rsp, 0x20
mov edx, 0x40
mov rsi, r9
mov r9d, 2
mov rcx, r13
call fcn.14003ba50
add rsp, 0x20
movups xmm0, xmmword [r13]
movups xmm1, xmmword [r13 + 0x10]
movups xmmword [rdi + 0x10], xmm1
movups xmmword [rdi], xmm0
add rsi, 0xffffffffffffffe0
mov eax, 0x20
cmp rsi, 0x41
jb 0x14003cd23
nop dword [rax]
mov eax, dword [0x141dc2840]
sub eax, dword [0x141dc2844]
imul eax, eax, 0xea2c8b63
add eax, 0x67d4150f
or eax, 0x3a7d0cc3
cmp eax, 0xd844661d
ja 0x14003cc00
mov r15d, 0x20
nop dword [rax]
movups xmm0, xmmword [r13]
movups xmm1, xmmword [r13 + 0x10]
movups xmm2, xmmword [r13 + 0x20]
movups xmm3, xmmword [r13 + 0x30]
movups xmmword [r14 + 0x30], xmm3
movups xmmword [r14 + 0x20], xmm2
movups xmmword [r14 + 0x10], xmm1
movups xmmword [r14], xmm0
mov qword [r12], r14
mov qword [r12 + 8], 0x40
sub rsp, 0x20
mov edx, 0x40
mov r9d, 1
mov rcx, r13
mov r8, r12
call fcn.14003ba50
add rsp, 0x20
cmp r15, 0xffffffffffffffe0
je 0x14003cd96
lea rax, [r15 + 0x20]
mov ecx, dword [0x141dc2860]
mov edx, dword [0x141dc2864]
add ecx, edx
add ecx, 0x25436649
imul rdx, rcx, 0x341aeb5b
shr rdx, 0x20
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 0x1e
cmp ecx, 0x32d19277
ja 0x14003cc90
cmp rax, qword [rbp]
ja 0x14003cd56
movups xmm0, xmmword [r13]
movups xmm1, xmmword [r13 + 0x10]
movups xmmword [rdi + r15 + 0x10], xmm1
movups xmmword [rdi + r15], xmm0
add rsi, 0xffffffffffffffe0
nop word cs:[rax + rax]
mov ecx, dword [0x141dc2868]
add ecx, dword [0x141dc286c]
or ecx, 0x6b439c5
add ecx, 0xd0517e50
or ecx, 0xf7533af9
cmp ecx, 0x16fc6270
je 0x14003ccf0
mov r15, rax
cmp rsi, 0x40
ja 0x14003cc30
mov rdx, qword [rbp]
sub rdx, rax
add rdi, rax
mov qword [rbx], r13
mov qword [rbx + 8], 0x40
sub rsp, 0x20
mov r9d, 1
mov rcx, rdi
mov r8, rbx
call fcn.14003ba50
add rsp, 0x20
jmp 0x14003ce10
mov eax, dword [0x141dc2870]
and eax, dword [0x141dc2874]
cmp eax, 0x4013f6e0
jne 0x14003cd70
ud2
mov eax, dword [0x141dc2878]
and eax, dword [0x141dc287c]
imul eax, eax, 0x13a38fbe
imul rax, rax, 0x2825eb99
shr rax, 0x3d
ud2
ud2
mov eax, dword [0x141dc2850]
xor edx, edx
div dword [0x141dc2854]
or eax, 0x8f0e6ef8
shr eax, 3
imul rbx, rax, 0x2740eae3
shr rbx, 0x3a
mov qword [rsi + 0x10], r15
mov qword [rsi + 0x18], r12
sub rsp, 0x20
mov r9d, 2
mov rcx, rdi
mov rdx, r14
mov r8, rsi
call fcn.14003ba50
add rsp, 0x20
cmp ebx, 0x11d1aa5d
jbe 0x14003ce10
mov qword [rsi + 0x10], r15
mov qword [rsi + 0x18], r12
sub rsp, 0x20
mov r9d, 2
mov rcx, rdi
mov rdx, r14
mov r8, rsi
call fcn.14003ba50
add rsp, 0x20
jmp 0x14003cd98
mov eax, dword [0x141dc2858]
or eax, dword [0x141dc285c]
imul eax, eax, 0x2f5a1b9a
cmp eax, 0xded724e0
je 0x14003ce10
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret