Function at 0x140021440
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xc8]
sub rsp, 0x1c8
movaps xmmword [rsp + 0x1b0], xmm6
mov rsi, rdx
movsxd rbx, ecx
xor edi, edi
lea rcx, [0x140021240]
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov dword [rbp + 0x120], 1
mov qword [rbp + 0x18], rbx
lea r12, [rdi - 1]
cmp rbx, 1
jle 0x140021dfe
mov eax, 1
mov qword [rbp - 0x30], rax
nop dword [rax]
nop word [rax + rax]
mov rdx, qword [rsi + rax*8]
mov r8, r12
nop word [rax + rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x1400214c0
xorps xmm0, xmm0
movups xmmword [rbp - 0x28], xmm0
mov qword [rbp - 0x18], rdi
mov qword [rbp - 0x10], rdi
lea rcx, [rbp - 0x28]
call fcn.14001fa60
nop
lea rcx, [rbp - 0x28]
cmp qword [rbp - 0x10], 7
cmova rcx, qword [rbp - 0x28]
mov rax, qword [rbp - 0x18]
lea rdx, [rcx + rax*2]
mov rbx, rdx
call fcn.140020900
mov r10, rax
cmp rax, rdx
je 0x14002152b
nop word [rax + rax]
lea rcx, [rbx - 2]
movzx eax, word [rcx]
cmp ax, 0x5c
je 0x14002152b
cmp ax, 0x2f
je 0x14002152b
mov rbx, rcx
cmp r10, rcx
jne 0x140021510
mov r8d, 0x3a
mov rcx, rbx
call fcn.14002d3d0
cmp rbx, rax
je 0x140021576
lea rdx, [rax - 2]
cmp rbx, rdx
je 0x140021576
cmp word [rdx], 0x2e
jne 0x14002155e
lea rcx, [rdx - 2]
cmp rbx, rcx
jne 0x140021579
cmp word [rcx], 0x2e
jne 0x140021579
jmp 0x140021576
sub rdx, 2
cmp rbx, rdx
je 0x140021576
cmp word [rdx], 0x2e
je 0x140021579
sub rdx, 2
cmp rbx, rdx
jne 0x140021567
mov rdx, rax
sub rax, rdx
sar rax, 1
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x70], rdi
mov r8, rax
lea rcx, [rsp + 0x58]
call fcn.14001fa60
nop
lea rax, [rsp + 0x58]
cmp qword [rsp + 0x70], 7
cmova rax, qword [rsp + 0x58]
mov qword [rbp - 0x70], rax
mov rax, qword [rsp + 0x68]
mov qword [rbp - 0x68], rax
call fcn.14002ce38
movaps xmm0, xmmword [rbp - 0x70]
movdqa xmmword [rbp - 0x80], xmm0
lea r8, [rbp - 0x80]
mov edx, eax
lea rcx, [rbp - 0x60]
call fcn.140022620
mov eax, dword [0x14003a080]
mov dword [rsp + 0x50], eax
movzx eax, byte [0x14003a084]
mov byte [rsp + 0x50], 0x2e
xor byte [rsp + 0x51], 0x3a
xor byte [rsp + 0x52], 0x3b
xor byte [rsp + 0x53], 0x3c
xor al, 0x3d
mov byte [rsp + 0x54], al
lea rax, [rsp + 0x50]
mov rbx, r12
nop dword [rax]
inc rbx
cmp byte [rax + rbx], 0
jne 0x140021610
lea rcx, [rbp - 0x60]
mov r13, qword [rbp - 0x48]
cmp r13, 0xf
seta byte [rbp + 0x110]
mov rsi, qword [rbp - 0x60]
cmova rcx, rsi
mov r15, qword [rbp - 0x50]
mov r8, r15
cmp rbx, r15
cmovb r8, rbx
lea rdx, [rsp + 0x50]
call sub.VCRUNTIME140.dll_memcmp
mov r14d, eax
test eax, eax
jne 0x140021664
cmp r15, rbx
jae 0x14002165d
mov r14d, r12d
jmp 0x140021664
mov r14d, edi
seta r14b
cmp byte [rbp + 0x110], 0
je 0x14002169e
lea rdx, [r13 + 1]
mov rax, rsi
cmp rdx, 0x1000
jb 0x140021696
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002176b
mov rcx, rsi
call fcn.14002c18c
mov qword [rbp - 0x50], rdi
mov qword [rbp - 0x48], 0xf
mov byte [rbp - 0x60], 0
mov rdx, qword [rsp + 0x70]
cmp rdx, 7
jbe 0x1400216f0
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400216eb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140021772
call fcn.14002c18c
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x70], 7
mov word [rsp + 0x58], di
mov rdx, qword [rbp - 0x10]
cmp rdx, 7
jbe 0x14002173f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002173a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140021779
call fcn.14002c18c
test r14d, r14d
je 0x140021780
inc dword [rbp + 0x120]
mov rax, qword [rbp - 0x30]
inc rax
mov qword [rbp - 0x30], rax
cmp rax, qword [rbp + 0x18]
jge 0x140021dfe
mov rsi, qword [rbp + 0x118]
jmp 0x1400214b0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
movsxd rax, dword [rbp + 0x120]
test eax, eax
jle 0x140021dfe
mov rdx, qword [rbp + 0x118]
mov rdx, qword [rdx + rax*8]
xorps xmm0, xmm0
movups xmmword [rbp - 8], xmm0
mov qword [rbp + 8], rdi
mov qword [rbp + 0x10], rdi
mov r8, r12
nop dword [rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x1400217b0
lea rcx, [rbp - 8]
call fcn.14001fa60
nop
lea rdx, [rbp - 8]
cmp qword [rbp + 0x10], 7
cmova rdx, qword [rbp - 8]
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x70], rdi
mov r8, qword [rbp + 8]
lea rcx, [rsp + 0x58]
call fcn.14001fa60
nop
lea rcx, [rsp + 0x58]
cmp qword [rsp + 0x70], 7
cmova rcx, qword [rsp + 0x58]
mov r9d, 0xffffffff
mov r8d, 3
lea rdx, [rbp - 0x60]
call fcn.14002d050
mov ecx, eax
test eax, eax
jne 0x140021854
mov edx, dword [rbp - 0x50]
bt edx, 0xa
jae 0x140021846
mov eax, dword [rbp - 0x4c]
cmp eax, 0xa000000c
jne 0x140021838
lea eax, [rcx + 4]
jmp 0x140021876
cmp eax, 0xa0000003
jne 0x140021846
mov eax, 0xa
jmp 0x140021876
movzx eax, dl
and eax, 0x10
or eax, 0x20
shr eax, 4
jmp 0x140021876
mov dword [rbp - 0x7c], 0xffff
sub eax, 2
je 0x140021871
sub eax, 1
je 0x140021871
sub eax, 0x32
je 0x140021871
cmp eax, 0x46
mov eax, edi
jne 0x140021876
mov eax, 1
mov dword [rbp - 0x70], ecx
lea rdx, [0x1400410a8]
mov qword [rbp - 0x68], rdx
movaps xmm0, xmmword [rbp - 0x70]
movdqa xmmword [rbp - 0x70], xmm0
test eax, eax
je 0x1400218d7
cmp eax, 1
sete bl
mov rdx, qword [rsp + 0x70]
cmp rdx, 7
jbe 0x1400218e8
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400218e3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400218e3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
mov bl, 1
test ecx, ecx
jne 0x140021e1d
jmp 0x140021897
call fcn.14002c18c
test bl, bl
jne 0x140021dbb
call fcn.140003820
mov qword [0x140041b88], rax
cmp rax, 0xffffffffffffffff
je 0x140021dbb
mov ecx, 1
call fcn.14002c150
mov rcx, rax
mov qword [rbp + 0x20], rax
inc rax
mov qword [rbp + 0x30], rax
mov byte [rcx], bl
mov qword [rbp + 0x28], rax
lea rdx, [rbp + 0x20]
lea rcx, [rbp - 8]
call fcn.14002b910
mov rbx, qword [rbp + 0x20]
mov rcx, qword [0x140041b88]
test al, al
jne 0x14002194a
call fcn.1400072f0
jmp 0x140021d7e
mov dword [rbp + 0x128], edi
lea rax, [rbp + 0x128]
mov qword [rsp + 0x48], rax
lea rax, [fcn.140021260]
mov qword [rsp + 0x40], rax
mov byte [rsp + 0x38], 0
mov dword [rsp + 0x30], edi
mov byte [rsp + 0x28], 1
mov byte [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
call fcn.140023a10
test rax, rax
jne 0x140021b99
movups xmm0, xmmword [0x14003a0c0]
movups xmmword [rbp + 0x38], xmm0
movups xmm1, xmmword [0x14003a0d0]
movups xmmword [rbp + 0x48], xmm1
movups xmm0, xmmword [0x14003a0e0]
movups xmmword [rbp + 0x58], xmm0
movups xmm1, xmmword [0x14003a0f0]
movups xmmword [rbp + 0x68], xmm1
movups xmm0, xmmword [0x14003a100]
movups xmmword [rbp + 0x78], xmm0
movups xmm1, xmmword [0x14003a110]
movups xmmword [rbp + 0x88], xmm1
movups xmm0, xmmword [0x14003a120]
movups xmmword [rbp + 0x98], xmm0
mov eax, dword [str._e1_]
mov dword [rbp + 0xa8], eax
cmp dword [0x140041010], 2
jl 0x140021b3a
movdqa xmm5, xmmword [0x14003b400]
movdqa xmm4, xmmword [0x14003b510]
movdqa xmm6, xmmword [0x14003b450]
movdqa xmm0, xmmword [0x14003b4c0]
movdqa xmmword [rbp - 0x80], xmm0
lea rcx, [rbp + 0x3c]
mov edx, dword [rbp - 0x80]
nop word [rax + rax]
movd xmm2, edi
pshufd xmm2, xmm2, 0
paddd xmm2, xmm5
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x14003b490]
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx - 4]
xorps xmm2, xmm0
movd dword [rcx - 4], xmm2
lea eax, [rdi + 4]
movd xmm3, eax
pshufd xmm3, xmm3, 0
paddd xmm3, xmm5
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm3
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x14003b490]
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx]
xorps xmm2, xmm0
movd dword [rcx], xmm2
add edi, 8
mov eax, edi
lea rcx, [rcx + 8]
cmp edi, 0x70
jl 0x140021a30
cmp eax, 0x74
jge 0x140021b7f
movsxd rax, edi
lea r8, [rbp + 0x38]
add r8, rax
nop dword [rax]
nop dword [rax + rax]
mov eax, 0x92492493
imul edi
add edx, edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x38
movzx eax, dil
sub al, cl
add al, 0x39
xor byte [r8], al
inc edi
lea r8, [r8 + 1]
cmp edi, 0x74
jl 0x140021b50
lea rcx, [rbp + 0x38]
call fcn.140001020
mov rcx, qword [0x140041b88]
call fcn.1400072f0
jmp 0x140021d7e
mov rcx, qword [0x140041b88]
call fcn.1400072f0
movups xmm0, xmmword [0x14003a040]
movups xmmword [rbp - 0x60], xmm0
movups xmm1, xmmword [0x14003a050]
movups xmmword [rbp - 0x50], xmm1
movsd xmm0, qword [0x14003a060]
movsd qword [rbp - 0x40], xmm0
movzx eax, word [0x14003a068]
mov word [rbp - 0x38], ax
movzx eax, byte [0x14003a06a]
mov byte [rbp - 0x36], al
cmp dword [0x140041010], 2
jl 0x140021d2a
movdqa xmm5, xmmword [0x14003b400]
movdqa xmm4, xmmword [0x14003b510]
movdqa xmm6, xmmword [0x14003b450]
movdqa xmm0, xmmword [0x14003b4c0]
movdqa xmmword [rbp - 0x80], xmm0
lea rcx, [rbp - 0x5c]
mov edx, dword [rbp - 0x80]
nop word [rax + rax]
movd xmm2, edi
pshufd xmm2, xmm2, 0
paddd xmm2, xmm5
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x14003b490]
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx - 4]
xorps xmm2, xmm0
movd dword [rcx - 4], xmm2
lea eax, [rdi + 4]
movd xmm3, eax
pshufd xmm3, xmm3, 0
paddd xmm3, xmm5
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm3
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x14003b490]
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx]
xorps xmm2, xmm0
movd dword [rcx], xmm2
add edi, 8
mov eax, edi
lea rcx, [rcx + 8]
cmp edi, 0x28
jl 0x140021c20
cmp eax, 0x2b
jge 0x140021d6f
movsxd rax, edi
lea r8, [rbp - 0x60]
add r8, rax
nop dword [rax]
nop dword [rax + rax]
mov eax, 0x92492493
imul edi
add edx, edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x38
movzx eax, dil
sub al, cl
add al, 0x39
xor byte [r8], al
inc edi
lea r8, [r8 + 1]
cmp edi, 0x2b
jl 0x140021d40
lea rcx, [rbp - 0x60]
call fcn.140001020
mov r12d, 0x45
test rbx, rbx
je 0x140021dbb
mov rdx, qword [rbp + 0x30]
sub rdx, rbx
mov rax, rbx
cmp rdx, 0x1000
jb 0x140021db2
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140021db2
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rbx
call fcn.14002c18c
nop
mov rdx, qword [rbp + 0x10]
cmp rdx, 7
jbe 0x140021dfe
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140021df9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140021df9
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14002c18c
mov eax, r12d
movaps xmm6, xmmword [rsp + 0x1b0]
add rsp, 0x1c8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea r8, [rsp + 0x58]
lea rdx, [rbp - 0x70]
call fcn.1400211e0
int3