Function at 0x1403d2fd0
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]
mov qword [rbp], 0xfffffffffffffffe
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
mov rax, qword [0x140567c88]
add rax, r8
movabs r15, 0x76c26108a1a96eab
xorps xmm0, xmm0
movaps xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x10], 0
add r15, rax
je 0x1403d30e5
mov rax, qword [0x140567c88]
movabs rcx, 0xeb8fae08c67250f6
xor rcx, rax
movabs rdx, 0x6b8fae08c67250f6
and rdx, rax
lea rax, [rcx + rdx*2]
movabs rcx, 0x8b32b2ffdb371db4
add rcx, rax
cmp r15, rcx
jl 0x1403d3682
cmp r15, 0x1000
jb 0x1403d3121
lea rcx, [rdi + 0x28]
mov edx, 0xc5afb48b
mov r8d, 0xf24a8ccd
mov r9d, 0x88f0ca82
call fcn.1400aaae0
mov rcx, qword [0x140567c88]
mov rdx, rcx
not rdx
movabs r8, 0x893d9ef75e569155
and r8, rcx
movabs r9, 0x76c26108a1a96eaa
movabs r10, 0x93d9ef75e569155
and r10, rdx
and rdx, r9
or rdx, r8
xor r9, rcx
or r10, r9
not r10
lea rdx, [rdx + r10*2]
sub rcx, rdx
movabs r14, 0x76c26108a1a96ed1
add r14, rax
add r14, rcx
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
jmp 0x1403d313d
mov r14, qword [rbp - 0x20]
test rbx, rbx
setne al
or al, byte [0x1405760e8]
test r14, r14
setne cl
sete dl
mov r8d, eax
xor r8b, 1
and dl, r8b
and cl, al
or cl, dl
mov edx, ecx
not dl
xor cl, al
and dl, r8b
or dl, cl
test dl, 1
je 0x1403d3183
jmp 0x1403d3521
mov rcx, r15
mov edx, 0xc5afb48b
mov r8d, 0xf24a8ccd
mov r9d, 0x88f0ca82
call fcn.1400aaae0
mov r14, rax
mov qword [rbp - 0x20], r14
lea r12, [r14 + r15]
mov qword [rbp - 0x10], r12
mov rcx, r14
xor edx, edx
mov r8, r15
call fcn.14041da70
mov qword [rbp - 0x18], r12
test rbx, rbx
sete al
test r14, r14
sete cl
setne dl
xor dl, al
not dl
and dl, cl
or dl, al
cmp dl, 1
je 0x1403d3521
test rdi, rdi
je 0x1403d351c
xor ecx, ecx
cmp rdi, 8
jb 0x1403d34ab
mov rax, r14
sub rax, rbx
cmp rax, 0x20
jb 0x1403d34ab
lea rax, [0x1404679a4]
mov ecx, 0x52caa8aa
nop dword [rax + rax]
mov edx, dword [0x14057a754]
cmp edx, 0x2d
jg 0x1403d31cf
movsxd rdx, dword [0x1404679a4]
mov r8d, dword [0x14057a754]
cmp r8d, 0x30
jle 0x1403d31ec
mov edx, dword [0x1404679a4]
mov edx, dword [0x14057a754]
mov r8d, dword [0x140567c94]
add r8d, ecx
cmp edx, r8d
jge 0x1403d31b0
jmp 0x1403d31bb
mov r9d, dword [0x1404679ac]
movabs rcx, 0x76c26108a1a96eca
add rcx, qword [0x140567c88]
cmp rdi, rcx
setb r8b
movzx r10d, byte [0x140575988]
xor ecx, ecx
test r10b, r8b
jne 0x1403d3456
xor r10b, r8b
jne 0x1403d3456
add rdx, rax
mov rcx, rdi
and rcx, 0xffffffffffffffe0
mov r11d, dword [0x140567c44]
lea r8d, [r11 + 1]
mov dword [0x140567c44], r8d
mov r10d, r11d
not r10d
mov eax, r8d
not eax
and r10d, eax
mov r12d, 0x52caa847
nop word [rax + rax]
mov r15d, dword [0x140567c94]
add r15d, r12d
mov r13d, dword [0x14057a754]
cmp r13d, 0x4b
jg 0x1403d3260
xor eax, r8d
and eax, r11d
xor eax, r8d
or eax, r10d
xor eax, r15d
jne 0x1403d3291
test r9d, r9d
jg 0x1403d364a
xor r8d, r8d
mov edx, 0x20
movaps xmm0, xmmword [0x140467970]
movups xmm1, xmmword [rbx + rdx - 0x20]
movups xmm2, xmmword [rbx + rdx - 0x10]
movaps xmm3, xmm0
andnps xmm3, xmm1
andnps xmm1, xmm0
orps xmm1, xmm3
movaps xmm3, xmm0
andnps xmm3, xmm2
andnps xmm2, xmm0
orps xmm2, xmm3
movups xmmword [r14 + rdx - 0x20], xmm1
movups xmmword [r14 + rdx - 0x10], xmm2
cmp rcx, rdx
je 0x1403d32e0
add rdx, 0x20
jmp 0x1403d32a0
mov edx, dword [0x14057a750]
mov r9d, 0xf8892893
sub r9d, edx
imul r9d, edx
test r9b, 1
je 0x1403d330b
movzx edx, word [0x1404679b0]
mov edx, dword [0x14057a754]
cmp edx, 0x54
jge 0x1403d32e0
xor r9d, r9d
test eax, eax
setne r10b
movzx edx, word [0x1404679b0]
mov r11d, dword [0x14057a750]
lea r15d, [r11 + 1]
imul r15d, r11d
test r15b, 1
jne 0x1403d32f9
mov r9b, r10b
movzx eax, r9w
neg eax
mov r9d, dword [0x14057a754]
cwde
not eax
sub edx, r8d
nop word cs:[rax + rax]
mov r8d, dword [0x14057a750]
mov r9d, dword [0x140567c94]
mov r10d, r9d
xor r10d, 0x49
and r9d, 0x52caa849
lea r9d, [r10 + r9*2]
sub r9d, r8d
add r9d, 0xa6779fb4
imul r9d, r8d
test r9b, 1
jne 0x1403d3350
mov r8d, edx
not r8d
cwde
xor edx, eax
not eax
and eax, r8d
mov r8d, dword [0x14057a754]
mov r9d, 0x52caa853
add r9d, dword [0x140567c94]
cmp r8d, r9d
xor edx, eax
not edx
movzx r8d, byte [0x1405760e8]
mov r9b, 1
nop dword [rax + rax]
mov eax, dword [0x14057a750]
lea r10d, [rax - 1]
imul r10d, eax
test r10b, 1
je 0x1403d340a
test dx, dx
setne r10b
lea eax, [r8 + r10]
and al, r10b
mov r11d, r8d
sub r11b, r10b
add al, r11b
mul r11b
sub al, r11b
mul r11b
add r11b, al
or r11b, al
and r11b, 1
mov byte [0x1405760e8], r11b
test r9b, r9b
je 0x1403d33c0
test dx, dx
setne dl
mov eax, r8d
xor al, 1
mov r9d, eax
xor r9b, dl
and r9b, r8b
mov r8d, eax
and r8b, dl
or al, dl
xor al, 1
or al, r8b
mov edx, r9d
not dl
xor r9b, al
not al
and al, dl
or al, r9b
not al
or al, r9b
and al, 1
mov byte [0x1405760e8], al
cmp rcx, rdi
je 0x1403d351c
test dil, 0x18
je 0x1403d34ab
mov rax, rcx
mov rcx, rdi
not rcx
mov rdx, rcx
and rdx, 0xfffffffffffffff8
mov r8d, edi
and r8d, 7
or r8, rdx
and ecx, 7
or rcx, r8
mov rdx, 0xfffffffffffffff7
sub rdx, rcx
not rcx
movabs r8, 0x6767676767676767
nop dword [rax]
mov r9, qword [rbx + rax]
xor r9, r8
mov qword [r14 + rax], r9
cmp rdx, rax
je 0x1403d34a6
add rax, 8
jmp 0x1403d3490
cmp rcx, rdi
je 0x1403d351c
mov rax, rcx
not rax
add rax, rdi
movabs rdx, 0x76c26108a1a96ead
add rdx, qword [0x140567c88]
and rdx, rdi
je 0x1403d3512
inc rcx
dec rdx
movzx r8d, byte [rbx + rcx - 1]
mov r9d, r8d
not r9b
mov r10d, r9d
and r10b, 0x67
mov r11d, r8d
and r11b, 0x98
or r11b, r10b
mov r15d, r11d
not r15b
xor r11b, r8b
and r15b, r9b
or r15b, r11b
not r15b
or r15b, r10b
mov byte [r14 + rcx - 1], r15b
sub rdx, 1
jb 0x1403d3512
inc rcx
jmp 0x1403d34d0
cmp rax, 3
jae 0x1403d35cc
mov byte [r14 + rdi], 0
movsxd r8, edi
mov rdx, qword [rbp - 0x20]
lea rax, [rsi + 8]
mov qword [rbp - 0x28], rax
mov qword [rsi + 0x18], 0
mov qword [rsi + 0x20], 0xf
mov byte [rsi + 8], 0
lea rax, [0x1404388f8]
mov qword [rsi], rax
mov rcx, rsi
call fcn.1402738c0
mov rcx, qword [rbp - 0x20]
test rcx, rcx
je 0x1403d35b8
mov rax, qword [0x140567c88]
sub rax, rcx
add rax, qword [rbp - 0x10]
movabs rdx, 0x76c26108a1a96eaa
add rdx, rax
cmp rdx, 0x1000
jb 0x1403d359f
mov rax, qword [rcx - 8]
sub rcx, rax
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x1403d3687
add rdx, 0x27
mov rcx, rax
mov dword [rsp + 0x20], 0x8c6dd7ff
mov r8d, 0xc9a6275f
mov r9d, 0x9c8487b2
call fcn.1400a87c0
mov rax, rsi
add rsp, 0x58
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rax, rdi
sub rax, rcx
add rax, 0xfffffffffffffffc
lea rdx, [r14 + rcx]
add rbx, rcx
movabs rcx, 0x76c26108a1a96eac
nop word [rax + rax]
movzx r8d, byte [rbx]
xor r8b, 0x67
mov byte [rdx], r8b
movzx r8d, byte [rbx + 1]
xor r8b, 0x67
mov byte [rdx + 1], r8b
mov r8, qword [0x140567c88]
add r8, rcx
movzx r9d, byte [0x140567c90]
add r9b, 0x1a
xor r9b, byte [rbx + r8]
mov byte [rdx + r8], r9b
movzx r8d, byte [rbx + 3]
xor r8b, 0x67
mov byte [rdx + 3], r8b
test rax, rax
je 0x1403d351c
add rax, 0xfffffffffffffffc
add rdx, 4
add rbx, 4
jmp 0x1403d35f0
mov r10d, 2
xor r8d, r8d
nop word cs:[rax + rax]
lea r11d, [r10 - 2]
movsxd r11, r11d
xor r8w, word [rdx + r11]
mov r11d, dword [0x14057a750]
cmp r10d, r9d
jge 0x1403d3294
add r10d, 2
jmp 0x1403d3660
call fcn.140274a70
call fcn.1403d599c
int3