Function at 0x140243220
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 0x1402432f2
mov rdi, rcx
mov qword [rbp - 0x10], r8
mov qword [rbp - 0x48], r12
mov rax, qword [0x1404b51c8]
mov qword [rbp - 8], rax
movsxd rax, dword [rax]
mov qword [rbp + 0x28], rax
mov eax, dword [0x1403c88c8]
mov dword [rbp + 0x38], eax
lea r12, [r14 + 3]
mov qword [rbp - 0x18], 0
mov rcx, r12
call fcn.140376384
mov rsi, rax
lea rbx, [rdi + 8]
mov rcx, rax
xor edx, edx
mov qword [rbp - 0x50], r12
mov r8, r12
call fcn.14039e9a0
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.14039e2f0
mov eax, r15d
and eax, 2
add eax, dword [0x1404ef98c]
mov qword [rbp + 0x40], rsi
je 0x140243326
cmp qword [rdi + 0x20], 0x10
cmovae rbx, r13
mov dword [rbp + 0x3c], 0
mov qword [rbp + 0x48], rsi
jmp 0x14024343b
test r15b, 1
jne 0x140243374
mov ecx, 0x543f127b
call fcn.140247110
mov rdi, rax
xorps xmm0, xmm0
movups xmmword [r12 + 0x18], xmm0
mov rsi, qword [rax + 0x18]
cmp qword [rax + 0x20], 0x10
jb 0x1402433bf
mov rdi, qword [rdi + 8]
jmp 0x1402433c3
mov rcx, r12
mov edx, 0x20
mov r8, r14
mov r9d, 0x4cb77a9b
call fcn.1401d1730
test rax, rax
je 0x140243423
sub rax, r12
cmp qword [rdi + 0x20], 0x10
cmovae rbx, r13
cmp rax, 0xffffffffffffffff
je 0x14024342c
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 0x14024343b
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.140247500
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 0x1402439dd
add rdi, 8
lea r14, [r12 + 8]
cmp rsi, 0xf
ja 0x1402433df
movups xmm0, xmmword [rdi]
movups xmmword [r14], xmm0
mov ebx, 0xf
jmp 0x1402439d3
mov rbx, rsi
or rbx, 0xf
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
cmovae rbx, rax
cmp rbx, 0xfff
jb 0x1402439b3
lea rcx, [rbx + 0x28]
mov edx, 0x37fee2be
call fcn.140084df0
lea rcx, [rax + 0x27]
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x1402439c4
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 0x140243474
mov edx, 0xe89ab799
call fcn.1402470f0
mov r13d, eax
jmp 0x140243477
xor r13d, r13d
lea r12, [rbp + 8]
mov qword [rbp + 0x18], 0
mov qword [rbp + 0x20], 0xf
mov byte [rbp + 8], 0
lea rax, [0x1403bb278]
mov qword [rbp], rax
test r15b, 1
sete al
or dil, al
jne 0x1402434f4
mov rcx, rbp
call fcn.140243b70
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 [0x1404ef990]
add dl, byte [r8]
cmp dl, 0x3a
jne 0x1402434f4
cmp rcx, 0x10
cmovb rax, r12
movsx ecx, byte [rax]
mov edx, 0xe89ab799
call fcn.1402470f0
mov r14d, eax
test r13b, r13b
jne 0x1402434fc
jmp 0x140243535
xor r14d, r14d
test r13b, r13b
je 0x140243535
test r15b, 1
je 0x140243507
cmp r13b, r14b
je 0x140243535
movzx eax, byte [0x1404ef988]
add al, byte [rbx]
add al, byte [0x1404eeec8]
movsx ecx, al
mov edx, 0xe89ab799
call fcn.1402470f0
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 [0x1404eec78], 0
jne 0x140243569
and r15d, 1
je 0x140243569
cmp r13b, r14b
je 0x140243569
mov byte [rbp - 0x40], r13b
mov word [rbp - 0x3f], 0x3a
lea rcx, [rbp - 0x40]
call fcn.140243cf0
mov rcx, rbp
call fcn.140243b70
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 0x140243675
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 0x1402435dd
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.14039e2f0
mov r8, qword [rbp + 0x18]
mov qword [rbp - 0x28], 0
mov qword [rbp - 0x20], 0xf
mov byte [rbp - 0x38], 0
lea rax, [0x1403b9448]
mov qword [rbp - 0x40], rax
lea rcx, [rbp - 0x40]
mov rdx, r13
call fcn.140249ab0
lea rcx, [rbp - 0x40]
mov rdx, rbp
call fcn.1401b6f10
test eax, eax
je 0x14024395f
mov r15, qword [rbp + 0x40]
mov rax, qword [rbp - 0x20]
cmp rax, 0x10
jb 0x140243680
mov rdx, qword [rbp - 0x38]
lea r9, [rax + 1]
cmp r9, 0x1000
jb 0x14024365e
mov rcx, qword [rdx - 8]
sub rdx, rcx
add rdx, 0xfffffffffffffff8
cmp rdx, 0x20
jae 0x140243a04
add rax, 0x28
mov r9, rax
mov rdx, rcx
mov dword [rsp + 0x20], 0xb0de58bf
mov ecx, 1
xor r8d, r8d
call fcn.1401b4cf0
jmp 0x140243680
mov r15, qword [rbp + 0x40]
mov rsi, qword [rbp + 0x28]
mov ebx, dword [rbp + 0x38]
add rsi, qword [rbp - 8]
mov eax, dword [0x1404b51b0]
lea ecx, [rax - 0x139fbca7]
add ecx, 0x139fbca8
mov dword [0x1404b51b0], ecx
xor edi, edi
mov r12d, 0
mov qword [rbp + 0x28], rax
mov dword [rbp + 0x38], ecx
test eax, ecx
jne 0x1402436e4
xor eax, eax
mov edi, 0
mov r12d, 0
test ebx, ebx
jle 0x1402436e4
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 0x1402436d0
mov rax, qword [rbp - 0x10]
test rax, rax
mov esi, 0x7fffffff
cmovne rsi, rax
mov rcx, r13
mov edx, 0xb967a0d8
call fcn.1400856f0
cmp rax, rsi
jle 0x1402437b5
mov r14, rax
mov rax, qword [rbp - 0x50]
lea r8, [rax + r15]
xor eax, eax
movabs rbx, 0x100000000
cmp r14, rsi
jle 0x1402437b5
xor r15d, r15d
mov rdx, r13
movzx ecx, byte [r13 + 1]
test ecx, ecx
je 0x1402437ae
inc r13
add r15, rbx
cmp ecx, 0x5c
jne 0x140243730
mov ecx, eax
not cl
mov edx, eax
xor dl, 1
and cl, 0xfe
or cl, dl
cmp cl, 0xff
jne 0x140243798
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.140247c80
mov rcx, qword [rbp + 0x48]
mov rdx, qword [rbp - 0x10]
mov r8, rax
call fcn.14035e134
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 0x14024372a
jmp 0x1402437b5
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.14035e134
mov r14, qword [rbp + 0x48]
mov rcx, r14
mov edx, 0xb967a0d8
call fcn.1400856f0
mov rbx, rax
mov eax, dword [rbp + 0x34]
test al, al
je 0x1402437fc
mov byte [rbp - 0x40], al
mov word [rbp - 0x3f], 0x3a
lea rcx, [rbp - 0x40]
call fcn.140243cf0
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 [0x1403c88f0]
xor ecx, ecx
mov r8, rax
add r8, 0xffffffffffffffff
mov r9d, 0
adc r9, 0xffffffffffffffff
mov r10, qword [0x1403c88e8]
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 [0x1404ef98c], eax
cmp byte [rbp + 0x3c], 0
je 0x14024387a
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 0x1402438eb
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 0x1402438d6
mov rcx, qword [rdx - 8]
sub rdx, rcx
add rdx, 0xfffffffffffffff8
cmp rdx, 0x20
jae 0x1402439ff
mov rdx, qword [0x1404ee700]
lea r9, [rax + rdx]
add r9, 0x28
mov rdx, rcx
mov dword [rsp + 0x20], 0xb0de58bf
mov ecx, 1
xor r8d, r8d
call fcn.1401b4cf0
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.1400856f0
mov rbx, rax
cmp rax, 0xf
jbe 0x14024392e
mov rcx, rdi
mov rdx, rbx
mov r9, rsi
call fcn.140072260
jmp 0x140243947
mov qword [r12 + 0x18], rbx
mov rcx, rdi
mov rdx, rsi
mov r8, rbx
call fcn.14039e2f0
mov byte [r12 + rbx + 8], 0
lea rax, [0x1403b9448]
mov qword [r12], rax
mov rcx, rsi
call fcn.140084c10
jmp 0x1402439e8
mov rax, qword [rbp + 0x18]
movsx ecx, byte [r13 + rax]
test ecx, ecx
mov r15, qword [rbp + 0x40]
je 0x140243981
cmp ecx, 0x5c
jne 0x140243998
add r13, rax
inc r13
jmp 0x140243624
mov rax, qword [rbp + 0x48]
mov byte [rax], 0x2e
inc rax
mov qword [rbp + 0x48], rax
add r13, qword [rbp + 0x18]
jmp 0x140243624
cmp rax, 1
sete al
cmp byte [rbp + 0x34], 0
sete cl
and cl, al
movzx eax, cl
add r13, rax
jmp 0x140243624
lea rcx, [rbx + 1]
mov edx, 0x37fee2be
call fcn.140084df0
mov rcx, rax
mov qword [r14], rcx
lea r8, [rsi + 1]
mov rdx, rdi
call fcn.14039e2f0
mov qword [r12 + 0x18], rsi
mov qword [r12 + 0x20], rbx
lea rax, [0x1403b9448]
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.140356a3c
call fcn.140356a3c
int3