Function at 0x1401bf850
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x48
lea rbp, [rsp + 0x40]
mov qword [rbp], 0xfffffffffffffffe
mov ebx, r8d
mov edi, edx
mov esi, ecx
mov dword [rbp - 0xc], edx
test r9b, r9b
je 0x1401bf88a
mov rax, qword [0x14055f6c8]
mov qword [0x14055f6d0], rax
mov eax, 0xfa14a9ac
nop
mov ecx, dword [0x14055f718]
mov edx, 0xc9659f27
sub edx, ecx
imul edx, ecx
test dl, 1
jne 0x1401bf8b7
mov r12, qword [0x140506768]
mov ecx, dword [0x14055f71c]
cmp ecx, 0x5a
jle 0x1401bf8db
mov rcx, qword [0x140506768]
mov ecx, dword [0x14055f718]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x140506ad0]
add ecx, eax
cmp edx, ecx
jne 0x1401bf890
jmp 0x1401bf8a5
movsxd r14, dword [r12]
mov r15d, dword [0x14042716c]
test edi, edi
je 0x1401bfd90
cmp qword [0x14055f1b8], 0
jne 0x1401bf97c
mov eax, dword [0x1405069b8]
mov ecx, dword [0x140506ad0]
add eax, ecx
add eax, 0xfa13fc5d
cdqe
add rax, qword [0x1405069c8]
mov ecx, 0xe8
mov edx, 0xbfed001a
mov r8d, 0xca04b2bd
call qword [case.0x140119ecb.0]
lea rcx, [0x140420878]
mov qword [rax], rcx
mov qword [rax + 0x28], 0
mov qword [rax + 0x30], 0xf
mov byte [rax + 0x18], 0
lea rcx, [0x1404208d8]
mov qword [rax + 0x10], rcx
mov byte [rax + 8], 0
movzx ecx, byte [0x140506ad4]
add cl, 2
mov byte [rax + 9], cl
mov word [rax + 0xa], 0
xorps xmm0, xmm0
movups xmmword [rax + 0x38], xmm0
mov qword [0x14055f1b8], rax
mov rax, qword [0x14055f1b8]
mov rax, qword [rax + 0x38]
mov esi, esi
add rsi, rax
test bl, bl
je 0x1401bf9f7
mov ecx, 0xffff52b1
mov eax, dword [0x1405069a0]
add eax, ecx
cdqe
add rax, qword [0x1405069e8]
lea rdi, [rbp - 8]
mov rcx, rdi
mov edx, 0xa2c3dba8
mov r8d, 0xa2c3dba8
call qword [case.0x140119ecb.0]
lea rdx, [0x14055f6c8]
lea r9, [rbp - 0xc]
mov rcx, rdi
mov r8, rsi
call fcn.14022c510
mov eax, 0xffff52b1
add eax, dword [0x1405069ac]
cdqe
add rax, qword [0x1405069e0]
lea rcx, [rbp - 8]
call qword [case.0x140119ecb.0]
jmp 0x1401bfd90
test rax, rax
sete cl
movzx edx, byte [0x14055f728]
xor eax, eax
test dl, cl
jne 0x1401bfa57
xor dl, cl
jne 0x1401bfa57
mov ecx, edi
add rcx, rsi
xor eax, eax
mov rdx, rsi
nop dword [rax + rax]
mov r8d, dword [rdx + 4]
test r8, r8
je 0x1401bfa57
lea r9, [r8 - 8]
shr r9, 1
mov r10, r9
not r10
mov r11, r9
xor r11, r10
and r11, rax
xor r10, r10
xor r10, r11
and r10, r9
xor r9, rax
lea rax, [r9 + r10*2]
add rdx, r8
cmp rdx, rcx
jb 0x1401bfa20
mov dword [rbp - 0x10], r15d
mov rcx, qword [0x14055f720]
add rcx, qword [0x14055f6d0]
mov rdx, qword [0x14055f6c8]
movabs r8, 0x77125edd3f9c0859
sub r8, rdx
neg rdx
mov r9, rcx
xor r9, rdx
and rdx, rcx
lea rdx, [r9 + rdx*2]
sar rdx, 3
add rdx, rax
movabs rax, 0x88eda122c063f7a7
xor rax, r8
movabs rcx, 0x8eda122c063f7a7
and rcx, r8
lea rax, [rax + rcx*2]
add rax, qword [0x14055f6d8]
sar rax, 3
cmp rax, rdx
jae 0x1401bfafd
movabs rax, 0xa6024cc3620574a9
add rax, qword [0x140506ac8]
cmp rdx, rax
ja 0x1401bfda8
mov eax, 0xffff52b1
add eax, dword [0x1405069b4]
cdqe
add rax, qword [0x1405069d0]
lea rcx, [0x14055f6c8]
call qword [case.0x140119ecb.0]
mov qword [rbp - 0x18], r14
mov eax, dword [rbp - 0xc]
mov qword [rbp - 8], 0
mov qword [rbp - 0x20], rax
test rax, rax
je 0x1401bfd1d
add qword [rbp - 0x18], r12
add qword [rbp - 0x20], rsi
lea rdi, [0x14055f6c8]
lea rbx, [rbp - 8]
jmp 0x1401bfb40
mov eax, dword [rsi + 4]
add rsi, rax
cmp rsi, qword [rbp - 0x20]
jae 0x1401bfd1d
mov eax, dword [rsi + 4]
test rax, rax
je 0x1401bfd1d
movabs rcx, 0x1fffffff8
add rax, rcx
shr rax, 1
test eax, eax
jle 0x1401bfb30
mov ecx, dword [0x14055f6f0]
mov edx, ecx
xor edx, 1
mov r8d, ecx
not r8d
mov r9d, ecx
and r9d, 1
lea r12d, [rdx + r9*2]
mov dword [0x14055f6f0], r12d
xor ecx, r12d
not r12d
and r12d, r8d
or r12d, ecx
xor r12d, 0xffffffff
je 0x1401bfba0
xor r14d, r14d
jmp 0x1401bfbf0
xor ecx, ecx
mov r14d, 0
mov r10d, dword [rbp - 0x10]
test r10d, r10d
mov r9, qword [rbp - 0x18]
jle 0x1401bfbf0
xor edx, edx
nop word [rax + rax]
movsxd rcx, ecx
movzx r8d, word [r9 + rcx]
mov r14d, edx
xor r14d, edx
xor r14d, r8d
and r14d, r8d
xor r14d, edx
mov edx, dword [0x140506ad0]
add ecx, edx
add ecx, 0xfa14a9ae
mov edx, r14d
cmp ecx, r10d
jl 0x1401bfbc0
nop dword [rax]
movsxd r15, eax
dec r15
xor r13d, r13d
nop dword [rax]
mov edx, dword [rsi]
mov qword [rbp - 8], rdx
mov eax, dword [0x140506ac8]
movzx ecx, al
xor ecx, 0xae
mov r8d, eax
xor r8d, 0x51
and r8d, eax
lea ecx, [rcx + r8*2]
shl rdx, cl
movzx eax, word [rsi + r13*2 + 8]
add rax, rdx
mov qword [rbp - 8], rax
mov rdx, qword [0x14055f6d0]
cmp rdx, qword [0x14055f6d8]
je 0x1401bfc60
mov qword [rdx], rax
add qword [0x14055f6d0], 8
cmp r15d, r13d
jne 0x1401bfd15
jmp 0x1401bfb30
mov eax, dword [0x1405069a4]
mov ecx, 0xffff52b1
add eax, ecx
cdqe
add rax, qword [0x1405069c0]
mov rcx, rdi
mov r8, rbx
call qword [case.0x140119ecb.0]
movzx ecx, word [0x140427174]
cmp r12d, 1
mov r8d, 0
sbb r8d, r8d
sub ecx, r14d
mov eax, dword [0x14055f718]
nop
mov rax, qword [0x14055f720]
mov edx, dword [0x14055f718]
mov r9d, dword [0x140506ad0]
not r9d
add r9d, edx
imul r9d, edx
test r9b, 1
jne 0x1401bfca0
mov edx, ecx
not edx
movsx r8d, r8w
mov r9d, r8d
not r9d
mov r10d, r9d
xor r10d, edx
mov r11d, r8d
and r11d, ecx
or r11d, r10d
not r11d
xor ecx, r8d
and edx, r9d
or edx, ecx
not edx
or edx, r11d
mov ecx, edx
not ecx
xor edx, r8d
and ecx, r9d
or ecx, edx
not ecx
movzx ecx, cx
add rcx, rax
mov qword [0x14055f720], rcx
cmp r15d, r13d
je 0x1401bfb30
inc r13
jmp 0x1401bfc00
mov eax, dword [0x1405069bc]
mov ecx, dword [0x140506ad0]
mov edx, ecx
xor edx, 0xfa1556fb
mov r8d, ecx
and r8d, 0x7a1556fb
lea edx, [rdx + r8*2]
sub eax, edx
add eax, ecx
add eax, 0xfa14a9ac
cdqe
add rax, qword [0x1405069d8]
lea rcx, [0x14055f6c8]
call qword [case.0x140119ecb.0]
mov rdx, qword [0x14055f6d0]
mov rcx, qword [0x14055f6c8]
mov r8, rdx
sub r8, rcx
mov eax, 0xffff52b1
add eax, dword [0x1405069a8]
sar r8, 3
cdqe
add rax, qword [0x1405069f8]
call qword [case.0x140119ecb.0]
lea rax, [0x14055f6c8]
add rsp, 0x48
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov eax, dword [0x1405069b0]
mov ecx, dword [0x140506ad0]
mov edx, ecx
xor edx, 0xfa14a9ac
and ecx, 0x7a14a9ac
add ecx, ecx
mov r8d, edx
xor r8d, ecx
and ecx, edx
lea ecx, [r8 + rcx*2]
add eax, ecx
add eax, 0xffff52b1
cdqe
add rax, qword [0x1405069f0]
call qword [case.0x140119ecb.0]
int3