Function at 0x7ffd21b9bb20
Capabilities:
Contain obfuscated stackstrings

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0x90
mov rax, qword [0x7ffd21c77690]
xor rax, rsp
mov qword [rbp + 0x27], rax
mov rsi, rdx
mov rdi, rcx
mov qword [rbp - 0x39], rdx
xor r12d, r12d
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x17], xmm1
mov ecx, dword [0x7ffd21e4883c]
mov rax, qword gs:[0x58]
mov edx, 8
mov rax, qword [rax + rcx*8]
lea rbx, [r12 - 1]
mov eax, dword [rdx + rax]
cmp dword [0x7ffd21e7e968], eax
jle 0x7ffd21b9bc17
lea rcx, [0x7ffd21e7e968]
call fcn.7ffd21c3fc90
cmp dword [0x7ffd21e7e968], ebx
jne 0x7ffd21b9bc17
mov dword [rbp - 0x39], 0x74654732
mov dword [rbp - 0x35], 0x73756f4d
mov word [rbp - 0x31], 0x65
xorps xmm0, xmm0
movups xmmword [rbp - 0x21], xmm0
mov qword [rbp - 0x11], r12
mov qword [rbp - 9], r12
lea rax, [rbp - 0x38]
mov r8, rbx
nop dword [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x7ffd21b9bbd0
lea rdx, [rbp - 0x38]
lea rcx, [rbp - 0x21]
call fcn.7ffd21b902c0
nop
mov r8d, 2
lea rdx, [rbp - 0x21]
mov rcx, rdi
call fcn.7ffd21b93700
mov qword [0x7ffd21e7e950], rax
lea rcx, [rbp - 0x21]
call fcn.7ffd21b8c150
nop
lea rcx, [0x7ffd21e7e968]
call fcn.7ffd21c3fc24
mov r14, qword [0x7ffd21e7e950]
test r14, r14
je 0x7ffd21b9bd64
mov r14, qword [r14 + 8]
test rdi, rdi
jne 0x7ffd21b9bcd5
mov rcx, qword [r14 + 8]
call fcn.7ffd21b8c040
mov r9, rax
lea rdx, [rbp - 0x21]
call fcn.7ffd21b9fb40
mov rdx, rax
lea rcx, [rax + 2]
lea r8d, [rdi + 3]
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rdx]
xor byte [rcx - 1], al
movzx eax, byte [rdx]
xor byte [rcx], al
movzx eax, byte [rdx]
xor byte [rcx + 1], al
movzx eax, byte [rdx]
xor byte [rcx + 2], al
movzx eax, byte [rdx]
xor byte [rcx + 3], al
movzx eax, byte [rdx]
xor byte [rcx + 4], al
movzx eax, byte [rdx]
xor byte [rcx + 5], al
movzx eax, byte [rdx]
xor byte [rcx + 6], al
movzx eax, byte [rdx]
xor byte [rcx + 7], al
movzx eax, byte [rdx]
xor byte [rcx + 8], al
movzx eax, byte [rdx]
xor byte [rcx + 9], al
movzx eax, byte [rdx]
xor byte [rcx + 0xa], al
movzx eax, byte [rdx]
xor byte [rcx + 0xb], al
movzx eax, byte [rdx]
xor byte [rcx + 0xc], al
movzx eax, byte [rdx]
xor byte [rcx + 0xd], al
movzx eax, byte [rdx]
xor byte [rcx + 0xe], al
movzx eax, byte [rdx]
xor byte [rcx + 0xf], al
lea rcx, [rcx + 0x11]
sub r8, 1
je 0x7ffd21b9bdc6
jmp 0x7ffd21b9bc60
mov r15, qword [r14 + 0x80]
call fcn.7ffd21bc8600
cmp rdi, rax
jne 0x7ffd21b9bd49
mov rax, qword [r14 + 0x30]
mov rcx, qword [rax + 8]
mov dword [rbp - 0x39], 0x74614416
mov dword [rbp - 0x35], 0x646f4d61
mov word [rbp - 0x31], 0x6c65
mov byte [rbp - 0x2f], 0
lea rax, [rbp - 0x38]
nop word [rax + rax]
inc rbx
cmp byte [rax + rbx], 0
jne 0x7ffd21b9bd10
mov r14, qword [rcx + 0x10]
cmp qword [rcx + 0x18], 0x10
jb 0x7ffd21b9bd27
mov rcx, qword [rcx]
mov r8, r14
cmp rbx, r14
cmovb r8, rbx
lea rdx, [rbp - 0x38]
call sub.vcruntime140.dll_memcmp
test eax, eax
jne 0x7ffd21b9bd49
cmp r14, rbx
jb 0x7ffd21b9bd49
ja 0x7ffd21b9bd49
add rdi, 0xffffffffffffffe8
lea rdx, [rbp + 0x17]
mov rcx, rdi
call r15
mov rcx, qword [rbp + 0x17]
mov qword [rsi], rcx
mov rcx, qword [rbp + 0x1f]
mov qword [rsi + 8], rcx
jmp 0x7ffd21b9bd9b
mov qword [rsi], r12
mov qword [rsi + 8], r12
mov rdi, qword [rbp + 0x1f]
test rdi, rdi
je 0x7ffd21b9bd9b
mov eax, ebx
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x7ffd21b9bd9b
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
lock xadd dword [rdi + 0xc], ebx
cmp ebx, 1
jne 0x7ffd21b9bd9b
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 8]
mov rax, rsi
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.7ffd21c3f7f0
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
lea rcx, [rdx + 1]
mov byte [rcx + 0x33], 0
mov rdx, r9
call fcn.7ffd21b934d0
int3