Function at 0x14021f410
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x158
lea rbp, [rsp + 0x80]
mov qword [rbp + 0xd0], 0xfffffffffffffffe
mov rsi, rcx
lea rdi, [rcx + 8]
jmp 0x14021f44f
mov rcx, qword [rsi + 0x18]
mov edx, dword [0x14051e064]
cmp edx, 0x1d
jle 0x14021f45f
cmp qword [rsi + 0x20], 0x10
mov rax, rdi
jb 0x14021f440
mov rax, qword [rsi + 8]
jmp 0x14021f440
test rcx, rcx
je 0x14021fc00
xorps xmm0, xmm0
movaps xmmword [rbp - 0x30], xmm0
movaps xmmword [rbp + 0xa0], xmm0
movaps xmmword [rbp + 0x90], xmm0
movaps xmmword [rbp + 0x80], xmm0
movaps xmmword [rbp + 0x70], xmm0
movaps xmmword [rbp + 0x60], xmm0
movaps xmmword [rbp + 0x50], xmm0
movaps xmmword [rbp + 0x40], xmm0
movaps xmmword [rbp + 0x30], xmm0
movaps xmmword [rbp + 0x20], xmm0
movaps xmmword [rbp + 0x10], xmm0
movaps xmmword [rbp], xmm0
movaps xmmword [rbp - 0x10], xmm0
movaps xmmword [rbp - 0x20], xmm0
movaps xmmword [rbp - 0x40], xmm0
movaps xmmword [rbp - 0x50], xmm0
mov byte [rbp - 0x22], 1
movzx edx, byte [rcx + rax - 1]
cmp byte [rbp + rdx - 0x50], 0
je 0x14021f4df
lea rbx, [rcx + rax]
dec rbx
jmp 0x14021f4f2
movzx edx, byte [rax + rcx - 2]
cmp byte [rbp + rdx - 0x50], 0
jne 0x14021f4ea
dec rcx
cmp rcx, 1
jne 0x14021f4d0
jmp 0x14021fc00
lea rbx, [rax + rcx]
add rbx, 0xfffffffffffffffe
sub rbx, rax
cmp rbx, 0xffffffffffffffff
je 0x14021fc00
mov eax, dword [0x14051dfc8]
mov ecx, dword [0x140520970]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 0x26838]
jg 0x14021f621
mov rdx, qword [0x14051dfb8]
cmp qword [rsi + 0x20], 0x10
jb 0x14021f536
mov rdi, qword [rsi + 8]
mov rax, qword [rsi + 0x18]
movabs r8, 0x9e980d3dba1e63d3
test rdx, rdx
je 0x14021f7fa
test rax, rax
je 0x14021f7fa
mov rcx, qword [0x1404df458]
add rcx, r8
cmp qword [0x14051dfc0], rcx
jbe 0x14021f572
mov rcx, qword [0x14051dfa8]
jmp 0x14021f579
lea rcx, [0x14051dfa8]
xorps xmm0, xmm0
movaps xmmword [rbp + 0xa0], xmm0
movaps xmmword [rbp + 0x90], xmm0
movaps xmmword [rbp + 0x80], xmm0
movaps xmmword [rbp + 0x70], xmm0
movaps xmmword [rbp + 0x60], xmm0
movaps xmmword [rbp + 0x50], xmm0
movaps xmmword [rbp + 0x40], xmm0
movaps xmmword [rbp + 0x30], xmm0
movaps xmmword [rbp + 0x20], xmm0
movaps xmmword [rbp + 0x10], xmm0
movaps xmmword [rbp], xmm0
movaps xmmword [rbp - 0x10], xmm0
movaps xmmword [rbp - 0x20], xmm0
movaps xmmword [rbp - 0x30], xmm0
movaps xmmword [rbp - 0x40], xmm0
movaps xmmword [rbp - 0x50], xmm0
mov r9, rdx
not r9
mov r8, rdx
xor r8, 7
and r9, 0xfffffffffffffff8
or r9, r8
mov r8, rcx
cmp r9, 0xffffffffffffffff
je 0x14021f608
lea r8, [rcx + 1]
add r9, 2
nop word [rax + rax]
movzx r10d, byte [r8 - 1]
mov byte [rbp + r10 - 0x50], 1
test r9, r9
je 0x14021f608
inc r8
inc r9
jmp 0x14021f5f0
add rcx, rdx
mov r9d, dword [0x14051e064]
cmp r9d, 0xa
jg 0x14021f6f0
jmp 0x14021f6c5
mov dword [rsp + 0x28], 0x949fa76a
mov dword [rsp + 0x20], 0x24a567c6
lea rdx, [0x14051dfc8]
mov ecx, 1
xor r8d, r8d
mov r9d, 1
call fcn.140226af0
cmp dword [0x14051dfc8], 0xffffffff
jne 0x14021f524
mov ecx, 1
mov edx, 1
mov r8d, 0x51253437
mov r9d, 0x7b0fddb0
call fcn.1402262d0
lea rcx, [0x14051dfa0]
mov rdx, rax
call fcn.1400aef40
lea rcx, [0x14021e2b0]
mov edx, 0x8023ca96
mov r8d, 0x4e7cf419
call fcn.1400ad8d0
mov dword [rsp + 0x28], 0x949fa76a
mov dword [rsp + 0x20], 0x24a567c6
lea rdx, [0x14051dfc8]
mov ecx, 1
xor r8d, r8d
xor r9d, r9d
call fcn.140226af0
jmp 0x14021f524
cmp rdx, 8
setb r9b
or r9b, byte [0x14051d6c4]
mov r10d, dword [0x14051e060]
lea r11d, [r10 - 1]
imul r11d, r10d
test r11b, 1
je 0x14021f6fb
nop dword [rax]
cmp byte [0x14051d180], 0
jne 0x14021f6f0
jmp 0x14021f6c5
test r9b, 1
jne 0x14021f788
nop word cs:[rax + rax]
movzx edx, byte [r8]
mov byte [rbp + rdx - 0x50], 1
movzx edx, byte [r8 + 1]
movzx r9d, byte [0x1404df460]
mov r10d, r9d
xor r10b, 0x6c
mov r11d, r9d
and r11b, 0x6c
add r11b, r11b
add r11b, r10b
mov byte [rbp + rdx - 0x50], r11b
movzx edx, byte [r8 + 2]
mov byte [rbp + rdx - 0x50], 1
movzx edx, byte [r8 + 3]
mov byte [rbp + rdx - 0x50], 1
movzx edx, byte [r8 + 4]
add r9b, 0x6c
mov byte [rbp + rdx - 0x50], r9b
movzx edx, byte [r8 + 5]
mov byte [rbp + rdx - 0x50], 1
movzx edx, byte [r8 + 6]
mov byte [rbp + rdx - 0x50], 1
movzx edx, byte [r8 + 7]
mov byte [rbp + rdx - 0x50], 1
add r8, 8
cmp r8, rcx
jne 0x14021f710
mov r8, qword [0x1404df458]
add r8, rax
movabs rdx, 0x9e980d3dba1e63c3
add rdx, r8
movzx ecx, byte [rdi + rdx]
cmp byte [rbp + rcx - 0x50], 0
je 0x14021fa44
add rdx, rdi
mov rcx, rdx
mov edx, dword [0x14051e064]
mov r8d, 0x10373e21
add r8d, dword [0x1404df464]
cmp edx, r8d
nop word [rax + rax]
mov r8, rcx
sub r8, rdi
cmp r8, 0xffffffffffffffff
sete dl
cmp r8, rbx
setb r8b
mov r9d, dword [0x14051e064]
cmp r9d, 0x3a
jg 0x14021f7d0
or dl, r8b
je 0x14021fc00
mov qword [rbp + 0xc0], 0
mov qword [rbp + 0xc8], 0xf
mov byte [rbp + 0xb0], 0
cmp rax, rbx
cmovb rbx, rax
cmp rbx, 0xf
jbe 0x14021f838
lea rcx, [rbp + 0xb0]
mov rdx, rbx
mov r9, rdi
call fcn.14008aa10
jmp 0x14021f859
mov qword [rbp + 0xc0], rbx
lea rcx, [rbp + 0xb0]
mov rdx, rdi
mov r8, rbx
call fcn.1403d0ac0
mov byte [rbp + rbx + 0xb0], 0
lea r13, [rbp + 0xb0]
lea rdi, [rbp - 0x48]
lea r15, [0x1403ec1a8]
movabs r12, 0x9e980d3dba1e63c4
nop word cs:[rax + rax]
cmp qword [rbp + 0xc8], 0x10
mov rax, qword [rbp + 0xb0]
mov rbx, r13
cmovae rbx, rax
cmp byte [0x14051e068], 0
cmovne rbx, rax
test rbx, rbx
cmove rbx, r15
mov rax, qword [0x1404df458]
add rax, r12
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], 0xf
mov byte [rbp - 0x48], 0
mov rcx, rbx
mov edx, 0x7314194a
mov r8d, 0x593be761
call fcn.1400aa540
mov r14, rax
mov eax, dword [0x14051e060]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x14021f8ff
mov qword [rbp - 0x38], 0
mov qword [rbp - 0x30], 0xf
mov byte [rbp - 0x48], 0
jmp 0x14021f880
cmp r14, 0xf
jbe 0x14021f915
mov rcx, rdi
mov rdx, r14
mov r9, rbx
call fcn.14008aa10
jmp 0x14021f92d
mov qword [rbp - 0x38], r14
mov rcx, rdi
mov rdx, rbx
mov r8, r14
call fcn.1403d0ac0
mov byte [rbp + r14 - 0x48], 0
lea rax, [0x1403ed708]
mov qword [rbp - 0x50], rax
lea rdx, [rbp - 0x50]
mov rcx, rsi
call fcn.140229350
mov r8d, 0x10373ddd
nop word [rax + rax]
mov rcx, qword [rbp - 0x30]
mov edx, dword [0x14051e060]
lea eax, [rdx - 1]
imul eax, edx
mov r9d, dword [0x1404df464]
add r9d, r8d
xor edx, edx
div r9d
test edx, edx
je 0x14021f984
mov eax, dword [0x14051e060]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jmp 0x14021f950
movabs r14, 0x9e980d3dba1e63c5
cmp rcx, 0x10
jb 0x14021fb43
mov eax, dword [0x14051e064]
cmp eax, 0x1a
nop word cs:[rax + rax]
mov rdi, qword [rbp - 0x48]
mov rax, qword [0x1404df458]
mov edx, dword [0x14051e064]
cmp edx, 0x10
jg 0x14021f9b0
mov rdx, rax
xor rdx, r14
movabs r8, 0x1e980d3dba1e63c5
and r8, rax
lea rbx, [rdx + r8*2]
add rbx, rcx
cmp rbx, 0x1000
jb 0x14021fa35
mov rax, qword [rdi - 8]
mov rdx, rdi
xor rdx, 0xfffffffffffffff8
movabs r8, 0x7ffffffffffffff8
and r8, rdi
lea rdx, [rdx + r8*2]
sub rdx, rax
movabs r8, 0x9e980d3dba1e63e4
add r8, qword [0x1404df458]
cmp rdx, r8
jae 0x14021fa8b
add rcx, qword [0x1404df458]
movabs rbx, 0x9e980d3dba1e63ec
add rbx, rcx
mov rdi, rax
cmp byte [0x14051d180], 0
jne 0x14021fb00
jmp 0x14021fa90
add r8, rdi
movabs rcx, 0x9e980d3dba1e63c2
add rcx, r8
test rdx, rdx
je 0x14021f7fa
nop dword [rax]
movzx r8d, byte [rcx]
movzx r9d, byte [0x1404df460]
add r9b, 0x6b
cmp byte [rbp + r8 - 0x50], r9b
jne 0x14021f7b4
dec rcx
dec rdx
test rdx, rdx
jne 0x14021fa60
jmp 0x14021f7fa
call fcn.140388c3c
mov eax, dword [0x1404df464]
mov ecx, eax
xor ecx, 0x10373ddb
mov edx, eax
and edx, 0x10373ddb
lea ecx, [rcx + rdx*2]
lea r9d, [rax + 0x10373ddb]
lea edx, [rax + 0x34dca5a1]
add eax, 0xa4d6e545
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], edx
mov rdx, rdi
mov r8, rbx
call fcn.140226af0
mov ecx, dword [0x14051e060]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x1404df464]
mov edx, ecx
xor edx, 0x10373ddd
and ecx, 0x10373ddd
lea ecx, [rdx + rcx*2]
xor edx, edx
div ecx
test edx, edx
je 0x14021fb43
nop dword [rax]
mov dword [rsp + 0x28], 0x949fa76a
mov dword [rsp + 0x20], 0x24a567c6
xor ecx, ecx
mov rdx, rdi
mov r8, rbx
xor r9d, r9d
call fcn.140226af0
mov eax, dword [0x14051e060]
mov ecx, dword [0x1404df464]
neg ecx
add ecx, eax
add ecx, 0xefc8c224
imul ecx, eax
test cl, 1
jne 0x14021fb00
jmp 0x14021fa90
mov rax, qword [0x1404df458]
add r12, rax
mov qword [rbp - 0x38], r12
movabs rcx, 0x9e980d3dba1e63d3
add rcx, rax
mov qword [rbp - 0x30], rcx
mov byte [rbp - 0x48], 0
mov rax, qword [rbp + 0xc8]
cmp rax, 0x10
jb 0x14021fc00
mov rdi, qword [rbp + 0xb0]
mov rbx, qword [0x1404df458]
add rbx, rax
add rbx, r14
cmp rbx, 0x1000
jb 0x14021fbaf
mov rcx, qword [rdi - 8]
add rdi, 0xfffffffffffffff8
sub rdi, rcx
cmp rdi, 0x20
jae 0x14021fc17
add rax, 0x28
mov rbx, rax
mov rdi, rcx
mov eax, dword [0x14051e060]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x14021fbe0
mov dword [rsp + 0x28], 0x949fa76a
mov dword [rsp + 0x20], 0x24a567c6
xor ecx, ecx
mov rdx, rdi
mov r8, rbx
xor r9d, r9d
call fcn.140226af0
mov dword [rsp + 0x28], 0x949fa76a
mov dword [rsp + 0x20], 0x24a567c6
xor ecx, ecx
mov rdx, rdi
mov r8, rbx
xor r9d, r9d
call fcn.140226af0
mov rax, rsi
add rsp, 0x158
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.140388c3c
int3