Function at 0x1401e63e0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xd8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x50], 0xfffffffffffffffe
mov r15d, r9d
mov r12, rdx
mov r14, qword [rcx + 0x18]
test r14, r14
je 0x1401e64b2
mov rdi, rcx
mov qword [rbp - 0x10], r8
mov qword [rbp - 0x48], r12
mov rax, qword [0x140456e88]
mov qword [rbp - 8], rax
movsxd rax, dword [rax]
mov qword [rbp + 0x28], rax
mov eax, dword [0x14036b8b8]
mov dword [rbp + 0x38], eax
lea r12, [r14 + 3]
mov qword [rbp - 0x18], 0
mov rcx, r12
call fcn.140319534
mov rsi, rax
lea rbx, [rdi + 8]
mov rcx, rax
xor edx, edx
mov qword [rbp - 0x50], r12
mov r8, r12
call fcn.140341b50
cmp qword [rdi + 0x20], 0x10
mov r13, qword [rdi + 8]
mov r8, qword [rdi + 0x18]
mov r12, rbx
cmovae r12, r13
mov rcx, rsi
mov rdx, r12
call fcn.1403414a0
mov eax, r15d
and eax, 2
add eax, dword [0x14049167c]
mov qword [rbp + 0x40], rsi
je 0x1401e64e6
cmp qword [rdi + 0x20], 0x10
cmovae rbx, r13
mov dword [rbp + 0x3c], 0
mov qword [rbp + 0x48], rsi
jmp 0x1401e65fb
test r15b, 1
jne 0x1401e6534
mov ecx, 0x543f127b
call fcn.1401ea2d0
mov rdi, rax
xorps xmm0, xmm0
movups xmmword [r12 + 0x18], xmm0
mov rsi, qword [rax + 0x18]
cmp qword [rax + 0x20], 0x10
jb 0x1401e657f
mov rdi, qword [rdi + 8]
jmp 0x1401e6583
mov rcx, r12
mov edx, 0x20
mov r8, r14
mov r9d, 0x4cb77a9b
call fcn.1401748f0
test rax, rax
je 0x1401e65e3
sub rax, r12
cmp qword [rdi + 0x20], 0x10
cmovae rbx, r13
cmp rax, 0xffffffffffffffff
je 0x1401e65ec
mov rax, qword [rbp + 0x40]
lea rcx, [rax + 1]
mov qword [rbp + 0x48], rcx
mov byte [rax], 0x22
mov al, 1
mov dword [rbp + 0x3c], eax
jmp 0x1401e65fb
mov qword [r12 + 0x20], 0xf
mov qword [r12 + 0x18], 6
mov dword [rsp + 0x20], 0xbec63f90
mov ecx, 1
mov edx, 1
xor r8d, r8d
xor r9d, r9d
call fcn.1401ea6c0
mov ecx, dword [rax]
mov dword [r12 + 8], ecx
movzx eax, word [rax + 4]
mov word [r12 + 0xc], ax
mov byte [r12 + 0xe], 0
jmp 0x1401e6b9d
add rdi, 8
lea r14, [r12 + 8]
cmp rsi, 0xf
ja 0x1401e659f
movups xmm0, xmmword [rdi]
movups xmmword [r14], xmm0
mov ebx, 0xf
jmp 0x1401e6b93
mov rbx, rsi
or rbx, 0xf
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
cmovae rbx, rax
cmp rbx, 0xfff
jb 0x1401e6b73
lea rcx, [rbx + 0x28]
mov edx, 0x37fee2be
call fcn.140084ab0
lea rcx, [rax + 0x27]
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x1401e6b84
cmp qword [rdi + 0x20], 0x10
cmovae rbx, r13
mov dword [rbp + 0x3c], 0
mov rax, qword [rbp + 0x40]
mov qword [rbp + 0x48], rax
movsx ecx, byte [rbx]
cmp ecx, 0x2f
sete al
movzx edx, byte [rbx + 1]
mov r8d, ecx
xor r8b, 0x5c
mov r9d, edx
xor r9b, 0x5c
or r9b, r8b
sete dil
or dil, al
cmp dl, 0x3a
jne 0x1401e6634
mov edx, 0xe89ab799
call fcn.1401ea2b0
mov r13d, eax
jmp 0x1401e6637
xor r13d, r13d
lea r12, [rbp + 8]
mov qword [rbp + 0x18], 0
mov qword [rbp + 0x20], 0xf
mov byte [rbp + 8], 0
lea rax, [0x14035e258]
mov qword [rbp], rax
test r15b, 1
sete al
or dil, al
jne 0x1401e66b4
mov rcx, rbp
call fcn.1401e6d30
mov rax, qword [rbp + 8]
mov rcx, qword [rbp + 0x20]
lea rdx, [rax + 1]
cmp rcx, 0x10
lea r8, [rbp + 9]
cmovae r8, rdx
movzx edx, byte [0x140491680]
add dl, byte [r8]
cmp dl, 0x3a
jne 0x1401e66b4
cmp rcx, 0x10
cmovb rax, r12
movsx ecx, byte [rax]
mov edx, 0xe89ab799
call fcn.1401ea2b0
mov r14d, eax
test r13b, r13b
jne 0x1401e66bc
jmp 0x1401e66f5
xor r14d, r14d
test r13b, r13b
je 0x1401e66f5
test r15b, 1
je 0x1401e66c7
cmp r13b, r14b
je 0x1401e66f5
movzx eax, byte [0x140491678]
add al, byte [rbx]
add al, byte [0x140490bb0]
movsx ecx, al
mov edx, 0xe89ab799
call fcn.1401ea2b0
mov rcx, qword [rbp + 0x48]
mov byte [rcx], al
mov byte [rcx + 1], 0x3a
add rcx, 2
mov qword [rbp + 0x48], rcx
xor eax, eax
cmp byte [0x140490960], 0
jne 0x1401e6729
and r15d, 1
je 0x1401e6729
cmp r13b, r14b
je 0x1401e6729
mov byte [rbp - 0x40], r13b
mov word [rbp - 0x3f], 0x3a
lea rcx, [rbp - 0x40]
call fcn.1401e6eb0
mov rcx, rbp
call fcn.1401e6d30
mov eax, r14d
mov dword [rbp + 0x34], eax
xor eax, eax
test r13b, r13b
setne al
lea r13, [rbx + rax*2]
mov rax, qword [rbp + 0x18]
test rax, rax
je 0x1401e6835
mov rcx, qword [rbp + 8]
lea rdx, [rcx + 1]
cmp qword [rbp + 0x20], 0x10
lea r8, [rbp + 9]
cmovae r8, rdx
cmp byte [r8], 0x3a
mov rsi, qword [rbp + 0x28]
mov ebx, dword [rbp + 0x38]
jne 0x1401e679d
cmp rax, 2
mov r9d, 2
cmovb r9, rax
cmp qword [rbp + 0x20], 0x10
cmovae r12, rcx
lea rdx, [r12 + r9]
sub r9, rax
mov r8d, 1
sub r8, r9
neg r9
mov qword [rbp + 0x18], r9
mov rcx, r12
call fcn.1403414a0
mov r8, qword [rbp + 0x18]
mov qword [rbp - 0x28], 0
mov qword [rbp - 0x20], 0xf
mov byte [rbp - 0x38], 0
lea rax, [0x14035c428]
mov qword [rbp - 0x40], rax
lea rcx, [rbp - 0x40]
mov rdx, r13
call fcn.1401ecc70
lea rcx, [rbp - 0x40]
mov rdx, rbp
call fcn.14015a0d0
test eax, eax
je 0x1401e6b1f
mov r15, qword [rbp + 0x40]
mov rax, qword [rbp - 0x20]
cmp rax, 0x10
jb 0x1401e6840
mov rdx, qword [rbp - 0x38]
lea r9, [rax + 1]
cmp r9, 0x1000
jb 0x1401e681e
mov rcx, qword [rdx - 8]
sub rdx, rcx
add rdx, 0xfffffffffffffff8
cmp rdx, 0x20
jae 0x1401e6bc4
add rax, 0x28
mov r9, rax
mov rdx, rcx
mov dword [rsp + 0x20], 0xb0de58bf
mov ecx, 1
xor r8d, r8d
call fcn.140157eb0
jmp 0x1401e6840
mov r15, qword [rbp + 0x40]
mov rsi, qword [rbp + 0x28]
mov ebx, dword [rbp + 0x38]
add rsi, qword [rbp - 8]
mov eax, dword [0x140456e70]
lea ecx, [rax - 0x139fbca7]
add ecx, 0x139fbca8
mov dword [0x140456e70], ecx
xor edi, edi
mov r12d, 0
mov qword [rbp + 0x28], rax
mov dword [rbp + 0x38], ecx
test eax, ecx
jne 0x1401e68a4
xor eax, eax
mov edi, 0
mov r12d, 0
test ebx, ebx
jle 0x1401e68a4
xor edi, edi
xor r12d, r12d
nop word cs:[rax + rax]
movsxd rcx, eax
add rcx, rsi
xor rdi, qword [rcx]
xor r12, qword [rcx + 8]
add eax, 0x10
cmp eax, ebx
jl 0x1401e6890
mov rax, qword [rbp - 0x10]
test rax, rax
mov esi, 0x7fffffff
cmovne rsi, rax
mov rcx, r13
mov edx, 0xb967a0d8
call fcn.140084850
cmp rax, rsi
jle 0x1401e6975
mov r14, rax
mov rax, qword [rbp - 0x50]
lea r8, [rax + r15]
xor eax, eax
movabs rbx, 0x100000000
cmp r14, rsi
jle 0x1401e6975
xor r15d, r15d
mov rdx, r13
movzx ecx, byte [r13 + 1]
test ecx, ecx
je 0x1401e696e
inc r13
add r15, rbx
cmp ecx, 0x5c
jne 0x1401e68f0
mov ecx, eax
not cl
mov edx, eax
xor dl, 1
and cl, 0xfe
or cl, dl
cmp cl, 0xff
jne 0x1401e6958
mov qword [rbp - 8], r8
sub r8, qword [rbp + 0x48]
mov qword [rbp - 0x10], r8
mov dword [rsp + 0x20], 0xfa925f64
mov ecx, 1
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call fcn.1401eae40
mov rcx, qword [rbp + 0x48]
mov rdx, qword [rbp - 0x10]
mov r8, rax
call fcn.1403012e4
add qword [rbp + 0x48], 4
mov al, 1
mov r8, qword [rbp - 8]
sar r15, 0x20
sub r14, r15
mov r15, qword [rbp + 0x40]
cmp r14, rsi
jg 0x1401e68ea
jmp 0x1401e6975
mov r15, qword [rbp + 0x40]
mov r13, rdx
mov rdx, qword [rbp - 0x50]
add rdx, r15
mov rcx, qword [rbp + 0x48]
sub rdx, rcx
mov r8, r13
call fcn.1403012e4
mov r14, qword [rbp + 0x48]
mov rcx, r14
mov edx, 0xb967a0d8
call fcn.140084850
mov rbx, rax
mov eax, dword [rbp + 0x34]
test al, al
je 0x1401e69bc
mov byte [rbp - 0x40], al
mov word [rbp - 0x3f], 0x3a
lea rcx, [rbp - 0x40]
call fcn.1401e6eb0
mov r14, qword [rbp + 0x48]
add r14, rbx
xor eax, eax
mov ecx, dword [rbp + 0x38]
test dword [rbp + 0x28], ecx
setne al
mov rdx, qword [0x14036b8e0]
xor ecx, ecx
mov r8, rax
add r8, 0xffffffffffffffff
mov r9d, 0
adc r9, 0xffffffffffffffff
mov r10, qword [0x14036b8d8]
sub r10, rdi
sbb rdx, r12
mov r11, rdx
not r11
mov rsi, r10
not rsi
neg rax
sbb rcx, rcx
xor r10, r8
xor rdx, r9
and rax, rsi
or rax, r10
and rcx, r11
or rcx, rdx
not rax
not rcx
or rcx, rax
mov rax, rcx
shr rax, 0x20
or eax, ecx
add dword [0x14049167c], eax
cmp byte [rbp + 0x3c], 0
je 0x1401e6a3a
mov byte [r14], 0x22
inc r14
mov r12, qword [rbp - 0x48]
mov rsi, qword [rbp + 0x40]
mov byte [r14], 0
mov rax, qword [rbp + 0x20]
cmp rax, 0x10
jb 0x1401e6aab
mov rdx, qword [rbp + 8]
mov rcx, rax
xor rcx, 1
mov r8d, eax
and r8d, 1
lea r9, [rcx + r8*2]
cmp r9, 0x1000
jb 0x1401e6a96
mov rcx, qword [rdx - 8]
sub rdx, rcx
add rdx, 0xfffffffffffffff8
cmp rdx, 0x20
jae 0x1401e6bbf
mov rdx, qword [0x1404903e0]
lea r9, [rax + rdx]
add r9, 0x28
mov rdx, rcx
mov dword [rsp + 0x20], 0xb0de58bf
mov ecx, 1
xor r8d, r8d
call fcn.140157eb0
lea rdi, [r12 + 8]
mov qword [r12 + 0x18], 0
mov qword [r12 + 0x20], 0xf
mov byte [r12 + 8], 0
mov rcx, rsi
mov edx, 0xb967a0d8
call fcn.140084850
mov rbx, rax
cmp rax, 0xf
jbe 0x1401e6aee
mov rcx, rdi
mov rdx, rbx
mov r9, rsi
call fcn.1400733f0
jmp 0x1401e6b07
mov qword [r12 + 0x18], rbx
mov rcx, rdi
mov rdx, rsi
mov r8, rbx
call fcn.1403414a0
mov byte [r12 + rbx + 8], 0
lea rax, [0x14035c428]
mov qword [r12], rax
mov rcx, rsi
call fcn.140084550
jmp 0x1401e6ba8
mov rax, qword [rbp + 0x18]
movsx ecx, byte [r13 + rax]
test ecx, ecx
mov r15, qword [rbp + 0x40]
je 0x1401e6b41
cmp ecx, 0x5c
jne 0x1401e6b58
add r13, rax
inc r13
jmp 0x1401e67e4
mov rax, qword [rbp + 0x48]
mov byte [rax], 0x2e
inc rax
mov qword [rbp + 0x48], rax
add r13, qword [rbp + 0x18]
jmp 0x1401e67e4
cmp rax, 1
sete al
cmp byte [rbp + 0x34], 0
sete cl
and cl, al
movzx eax, cl
add r13, rax
jmp 0x1401e67e4
lea rcx, [rbx + 1]
mov edx, 0x37fee2be
call fcn.140084ab0
mov rcx, rax
mov qword [r14], rcx
lea r8, [rsi + 1]
mov rdx, rdi
call fcn.1403414a0
mov qword [r12 + 0x18], rsi
mov qword [r12 + 0x20], rbx
lea rax, [0x14035c428]
mov qword [r12], rax
mov rax, r12
add rsp, 0xd8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.1402f9bec
call fcn.1402f9bec
int3