Function at 0x1401b98e0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x218
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x190], 0xfffffffffffffffe
movsxd rax, dword [0x1404054ec]
cmp qword [rcx + 0x18], 0
mov r10d, dword [0x1404054f4]
je 0x1401b9a12
mov r8, rdx
mov rdi, rcx
lea rcx, [0x1404054ec]
movabs rdx, 0xe7dbcfdf856341ba
add rax, rdx
mov rdx, rax
xor rdx, rcx
and rax, rcx
lea rax, [rdx + rax*2]
movabs rbx, 0x182430207a9cbe46
add rbx, rax
lea rax, [0x140405620]
mov qword [rbp + 0x108], rax
mov qword [rbp + 0x140], 0
mov qword [rbp + 0x148], 0xf
mov byte [rbp + 0x130], 0
lea rax, [0x1403fe9c8]
mov qword [rbp + 0x128], rax
xorps xmm0, xmm0
movups xmmword [rbp + 0x158], xmm0
mov qword [rbp + 0x168], 0
mov byte [rbp + 0x170], 1
mov dword [rbp + 0x174], 1
movups xmmword [rbp + 0x178], xmm0
mov qword [rbp + 0x188], 0
lea rax, [0x140400878]
mov qword [rbp + 0x150], rax
mov byte [rbp + 0x110], 0
movabs rax, 0x52135586826ba6ed
nop word cs:[rax + rax]
mov rcx, qword [0x1404e4c70]
add rcx, rax
cmp rdi, rcx
je 0x1401b99f0
mov r9d, dword [0x1404e4a10]
lea ecx, [r9 + 1]
xor eax, eax
test al, al
jne 0x1401b9a40
jmp 0x1401b9a19
xor ebx, ebx
jmp 0x1401b9d59
mov dword [0x1404e4a10], ecx
lea rax, [fcn.1401b98e0]
add eax, eax
add eax, 0x3a60
mov edx, eax
not edx
test edx, eax
je 0x1401b9a53
nop word cs:[rax + rax]
mov dword [0x1404e4a10], ecx
mov eax, dword [0x140531c14]
cmp eax, 0x4a
jge 0x1401b9a40
jmp 0x1401b9a19
xor ecx, r9d
not ecx
test ecx, r9d
jne 0x1401b9a69
xor r15d, r15d
test r10d, r10d
jg 0x1401b9d70
xor r11d, r11d
mov qword [rbp + 0x120], 0
mov qword [rbp + 0x118], r8
mov rax, qword [rdi + 0x20]
mov rdx, qword [rax + 8]
movzx r10d, byte [0x1404e4c78]
mov ebx, r10d
xor bl, 0x1e
and r10b, 0x1e
add r10b, r10b
add r10b, bl
mov r15, rax
cmp byte [rdx + 0x19], r10b
jne 0x1401b9af0
mov r15, rax
nop word [rax + rax]
cmp qword [rdx + 0x30], r8
setb r10b
or r10b, byte [0x1405317c8]
test r10b, 1
cmove r15, rdx
lea r10, [rdx + 0x10]
cmove r10, rdx
mov rdx, qword [r10]
movzx r10d, byte [0x1404e4c78]
mov ebx, r10d
xor bl, 0x1e
and r10b, 0x1e
add r10b, r10b
add r10b, bl
cmp byte [rdx + 0x19], r10b
je 0x1401b9ab0
mov r10, qword [0x1404054e0]
mov edx, dword [0x140531c10]
and ecx, r9d
lea rdx, [fcn.1401b98e0]
lea r9d, [rdx + rdx]
add r9d, 0x2cc0
mov esi, r9d
not esi
nop word [rax + rax]
cmp ecx, 1
mov edx, 0
sbb rdx, rdx
test esi, r9d
jne 0x1401b9b20
neg r11
mov rcx, r10
xor rcx, r11
and r11, r10
lea rcx, [rcx + r11*2]
mov r9d, dword [0x140531c14]
cmp r9d, 0x50
nop dword [rax + rax]
xor r9d, r9d
test r9b, r9b
jne 0x1401b9b50
movabs r9, 0x52135586826ba6ec
add r9, qword [0x1404e4c70]
mov r10, r9
xor r10, r9
not r10
and r10, rdx
xor r9, rcx
xor r9, r10
test r9, rcx
setne cl
or cl, byte [0x1405317c8]
mov edx, 0xb06d6aec
lea r9, [fcn.1401b98e0]
add r9d, r9d
add r9d, 0x1680
and cl, 1
mov r10d, dword [0x1404e4c80]
add r10d, edx
mov r11d, r9d
xor r11d, r10d
not r11d
test r11d, r10d
jne 0x1401b9bd3
mov byte [0x1405317c8], cl
mov r10d, dword [0x140531c10]
lea r11d, [r10 + 1]
imul r11d, r10d
test r11b, 1
je 0x1401b9be7
mov byte [0x1405317c8], cl
cmp dword [0x1404e4c80], 0x4f929515
jne 0x1401b9ba0
jmp 0x1401b9bb8
movzx ecx, byte [0x1404e4c78]
add cl, 0x1e
cmp byte [r15 + 0x19], cl
jne 0x1401b9cd1
xor ebx, ebx
cmp qword [r15 + 0x30], r8
ja 0x1401b9cd3
cmp r15, rax
je 0x1401b9cd3
movzx eax, byte [0x1404e4c78]
add al, 0x1e
cmp byte [r15 + 0x28], al
jne 0x1401b9e22
cmp byte [rdi + 8], 0
jne 0x1401b9c54
mov rcx, qword [rdi + 0x10]
mov eax, dword [rdi + 0x34]
mov r9d, dword [rdi + 0x30]
lea rdx, [rdi + 0x38]
mov dword [rsp + 0x20], eax
mov r8d, 0x10
call fcn.140121ac0
test al, al
jne 0x1401b9c50
call fcn.14015bd90
mov byte [rdi + 8], 1
mov byte [rbp - 0x50], 0
lea rbx, [rbp - 0x4c]
mov r8d, 0x150
mov rcx, rbx
xor edx, edx
call fcn.1403e40c0
mov rcx, rbx
xor edx, edx
call fcn.14029a110
add rdi, 0x38
lea rsi, [rbp + 4]
movzx r9d, byte [rbp - 0x50]
mov qword [rsp + 0x20], rsi
mov r8d, 0x10
mov rcx, rbx
mov rdx, rdi
call fcn.14029a2c0
lea rax, [rbp - 0x4c]
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
mov rdx, qword [r15 + 0x78]
movsxd r8, edx
test rdx, rdx
je 0x1401b9cb3
mov rdx, qword [r15 + 0x70]
mov rcx, rax
mov r9, rdx
call fcn.14029ac00
mov byte [r15 + 0x28], 1
lea rcx, [rbp - 0x4c]
call fcn.14029a540
jmp 0x1401b9e2f
xor ebx, ebx
lea rax, [0x140405620]
mov qword [rbp + 0x108], rax
lea rcx, [rbp + 0x150]
call fcn.140073e00
mov rax, qword [rbp + 0x148]
movabs rcx, 0x52135586826ba6fc
add rcx, qword [0x1404e4c70]
cmp rax, rcx
jbe 0x1401b9d59
mov rcx, qword [rbp + 0x130]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1401b9d54
mov r8, qword [rcx - 8]
mov rdx, rcx
xor rdx, 0xfffffffffffffff8
add rcx, rcx
and rcx, 0xfffffffffffffff0
mov r9, rdx
xor r9, rcx
and rcx, rdx
lea rcx, [r9 + rcx*2]
sub rcx, r8
cmp rcx, 0x20
jae 0x1401b9e45
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a6550
mov rax, rbx
add rsp, 0x218
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea rax, [fcn.1401b98e0]
lea r12d, [rax + rax]
add r12d, 0x34e0
xor r11d, r11d
jmp 0x1401b9da0
xor r11, rsi
add r15d, 8
cmp r15d, r10d
jge 0x1401b9a6c
movsxd r13, r15d
add r13, rbx
mov eax, dword [0x1404e4c80]
mov edx, eax
xor edx, 0x720fc977
and eax, 0x720fc977
lea eax, [rdx + rax*2]
add eax, 0x3e5da175
test eax, r12d
jne 0x1401b9e10
nop word cs:[rax + rax]
mov rsi, qword [r13]
mov edx, dword [0x140531c10]
lea eax, [rdx - 1]
imul eax, edx
mov edx, dword [0x1404e4c80]
mov r14d, edx
xor r14d, 0xb06d6aed
and edx, 0x306d6aed
lea r14d, [r14 + rdx*2]
xor edx, edx
div r14d
test edx, edx
je 0x1401b9d90
nop word cs:[rax + rax]
mov rax, qword [r13]
cmp dword [0x1404e4c80], 0x4f929515
jne 0x1401b9e10
jmp 0x1401b9dd0
call fcn.14007df70
mov rcx, rax
call fcn.14013f720
mov rbx, qword [r15 + 0x78]
test rbx, rbx
je 0x1401b9cd3
mov rbx, qword [r15 + 0x70]
jmp 0x1401b9cd3
call fcn.14039c09c
int3