Function at 0x14021c5d0
Capabilities:
Encode data using xor
Hash data using sha256

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov qword [rsp + 0x48], rdx
mov eax, dword [rsp + 0x128]
mov rdx, qword [0x140516040]
xor rdx, rsp
mov qword [rsp + 0xb0], rdx
test r9, r9
cmove r9, r8
mov qword [rsp + 0x38], r9
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
mov edx, dword [r8 + 4]
mov qword [rsp + 0x30], rdx
mov dword [rsp + 0x2c], edx
cmp eax, 0xffffffff
jne 0x14021cae7
mov r14, qword [rsp + 0x120]
mov rax, qword [rcx + 8]
mov edx, dword [rax + 8]
test edx, edx
mov qword [rsp + 0x40], r8
jle 0x14021caae
mov r12, qword [rax]
mov r9d, edx
mov eax, r9d
cmp qword [r12 + rax*8 - 8], 0
je 0x14021ca89
movsxd rax, r9d
shl r9d, 6
mov r10, qword [r12 + rax*8 - 8]
xor eax, eax
test r10, r10
setne al
or eax, r9d
xor r9d, r9d
mov r11, r10
shr r11, 0x20
cmove r11, r10
setne r9b
shl r9d, 5
mov rsi, r11
shr rsi, 0x10
xor r10d, r10d
cmp r11, 0x10000
cmovb rsi, r11
setae r10b
shl r10d, 4
mov rdi, rsi
shr rdi, 8
xor r11d, r11d
cmp rsi, 0x100
cmovb rdi, rsi
setae r11b
mov rsi, rdi
shr rsi, 4
xor ebx, ebx
cmp rdi, 0x10
setae bl
cmovb rsi, rdi
mov rdi, rsi
shr rdi, 2
xor r15d, r15d
cmp rsi, 4
setae r15b
cmovb rdi, rsi
or r9d, eax
or r9d, r10d
cmp rdi, 2
lea eax, [r9 + r11*8]
lea eax, [rax + rbx*4]
lea ebp, [rax + r15*2]
sbb ebp, 0xffffffff
add ebp, 0xffffffc0
dec ebp
and ebp, 7
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
test rax, rax
jne 0x14021cad7
test edx, edx
mov rdi, qword [rsp + 0x30]
jle 0x14021caa1
mov eax, edx
cmp qword [r12 + rax*8 - 8], 0
je 0x14021ca63
movsxd rax, edx
shl edx, 6
mov r8, qword [r12 + rax*8 - 8]
xor eax, eax
test r8, r8
setne al
or eax, edx
xor ecx, ecx
mov r9, r8
shr r9, 0x20
cmove r9, r8
setne cl
shl ecx, 5
mov r10, r9
shr r10, 0x10
xor edx, edx
cmp r9, 0x10000
cmovb r10, r9
setae dl
shl edx, 4
mov r9, r10
shr r9, 8
xor r8d, r8d
cmp r10, 0x100
cmovb r9, r10
setae r8b
mov r10, r9
shr r10, 4
xor r11d, r11d
cmp r9, 0x10
setae r11b
cmovb r10, r9
mov r9, r10
shr r9, 2
xor esi, esi
cmp r10, 4
setae sil
cmovb r9, r10
or ecx, eax
or ecx, edx
cmp r9, 2
lea eax, [rcx + r8*8]
lea eax, [rax + r11*4]
lea eax, [rax + rsi*2]
sbb eax, 0xffffffff
add eax, 0xffffffc0
add eax, 7
shr eax, 3
movzx edx, byte [r14]
mov ecx, ebp
shr edx, cl
test edx, edx
jne 0x14021cb20
mov ebx, eax
xor r13d, r13d
test ebp, ebp
sete r13b
mov r12, rbx
sub r12, r13
lea rax, [rdi + 2]
cmp r12, rax
jb 0x14021cb62
mov ecx, dword [rsp + 0x2c]
mov esi, ecx
test ecx, ecx
js 0x14021c822
add rax, rsi
cmp r12, rax
jb 0x14021cb62
add r14, r13
cmp byte [r14 + r12 - 1], 0xbc
jne 0x14021cb41
mov rax, rdi
not rax
add r12, rax
mov rcx, r12
call fcn.140235900
mov r9, rdi
xor edi, edi
test rax, rax
je 0x14021cabf
mov r15, rax
lea r8, [r14 + r12]
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x20], rax
mov rcx, r15
mov rdx, r12
mov qword [rsp + 0x38], r8
call fcn.14012b1f0
test eax, eax
je 0x14021ca29
test r12, r12
je 0x14021c890
xor eax, eax
mov cl, byte [r14 + rax]
xor byte [r15 + rax], cl
inc rax
cmp rax, r12
jb 0x14021c880
test ebp, ebp
je 0x14021c8a3
mov cl, 8
sub cl, bpl
mov eax, 0xff
shr eax, cl
and byte [r15], al
neg r13
lea rax, [r12 - 1]
xor ecx, ecx
mov dl, byte [r15 + rcx]
lea rbp, [rcx + 1]
test dl, dl
jne 0x14021c8c1
cmp rcx, rax
mov rcx, rbp
jb 0x14021c8ad
cmp dl, 1
jne 0x14021cbc0
cmp dword [rsp + 0x2c], 0
js 0x14021c8e8
add r13, rbx
not rsi
add rsi, r13
sub rsi, qword [rsp + 0x30]
cmp rsi, rbp
jne 0x14021cba0
movaps xmm0, xmmword [0x140484a40]
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x70], xmm0
xor edi, edi
mov rsi, qword [rsp + 0x40]
test rsi, rsi
je 0x14021c940
mov ecx, dword [rsi + 0x2c]
call fcn.140235900
test rax, rax
je 0x14021ca29
mov r14, rax
xor ecx, ecx
call fcn.140235960
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x50], rsi
mov rdi, r14
sub r12, rbp
mov rax, qword [rsi + 0x10]
lea rcx, [0x14032e690]
cmp rax, rcx
jne 0x14021cac7
xorps xmm0, xmm0
movups xmmword [rdi + 0x5c], xmm0
movups xmmword [rdi + 0x50], xmm0
movups xmmword [rdi + 0x40], xmm0
movups xmmword [rdi + 0x30], xmm0
movups xmmword [rdi + 0x20], xmm0
movaps xmm0, xmmword [0x1404a3840]
movups xmmword [rdi], xmm0
movaps xmm0, xmmword [0x1404a3850]
movups xmmword [rdi + 0x10], xmm0
mov dword [rdi + 0x6c], 0x20
lea rdi, [rsp + 0x50]
mov rax, qword [rdi]
mov rax, qword [rax + 0x18]
lea rdx, [0x1404a3f10]
mov r8d, 8
mov rcx, rdi
call qword [0x140505c38]
mov rax, qword [rdi]
mov rax, qword [rax + 0x18]
mov rcx, rdi
mov rdx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x30]
mov r8, rsi
call qword [0x140505c38]
mov rdx, r15
add rdx, rbp
mov rax, qword [rdi]
mov rax, qword [rax + 0x18]
mov rcx, rdi
mov r8, r12
call qword [0x140505c38]
mov rax, qword [rdi]
mov rax, qword [rax + 0x20]
lea rdx, [rsp + 0x70]
mov rcx, rdi
call qword [0x140505c38]
mov rax, qword [rdi]
mov rcx, qword [rdi + 8]
mov edx, dword [rax + 0x2c]
call fcn.1402359a0
mov edi, 1
test esi, esi
je 0x14021ca29
lea rcx, [rsp + 0x70]
mov rdx, qword [rsp + 0x38]
mov r8, rsi
call fcn.1402d93c0
test eax, eax
jne 0x14021cbe0
mov rcx, r15
call fcn.140235960
mov rcx, qword [rsp + 0x58]
call fcn.140235960
mov rax, qword [rsp + 0x68]
test rax, rax
jne 0x14021cb8d
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
cmp rcx, qword [0x140516040]
je 0x14021ca73
call fcn.14029bbb0
int3
lea eax, [rdx - 1]
cmp edx, 1
mov edx, eax
jg 0x14021c72b
jmp 0x14021caa7
mov eax, edi
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea eax, [r9 - 1]
cmp r9d, 1
mov r9d, eax
jg 0x14021c652
xor ebp, ebp
jmp 0x14021c709
jne 0x14021c739
xor eax, eax
jmp 0x14021c7d8
je 0x14021cc08
mov r12, qword [rax]
mov r9d, edx
jmp 0x14021c661
xor r15d, r15d
jmp 0x14021ca29
lea rcx, [rsp + 0x50]
call qword [0x140505c38]
jmp 0x14021c98a
call qword [0x140505c38]
mov rdi, qword [rsp + 0x30]
jmp 0x14021c7de
cmp eax, 0xfffffffe
jne 0x14021caf5
mov dword [rsp + 0x2c], eax
jmp 0x14021c630
mov dword [rsp + 0x2c], eax
jge 0x14021c630
mov dword [rsp + 0x20], 0xe9
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c
xor r15d, r15d
mov ecx, 4
xor edx, edx
mov r8d, 0x8a
jmp 0x14021cb81
mov dword [rsp + 0x20], 0xf0
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c
xor r15d, r15d
mov ecx, 4
xor edx, edx
mov r8d, 0x7a
jmp 0x14021cb81
mov dword [rsp + 0x20], 0xfe
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c
xor r15d, r15d
mov ecx, 4
xor edx, edx
mov r8d, 0x7f
jmp 0x14021cb81
mov dword [rsp + 0x20], 0xfa
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c
xor r15d, r15d
mov ecx, 4
xor edx, edx
mov r8d, 0x71
call fcn.1403b2950
xor edi, edi
jmp 0x14021ca29
mov rax, qword [rax]
mov rcx, qword [rsp + 0x60]
call qword [0x140505c38]
jmp 0x14021ca49
mov dword [rsp + 0x20], 0x11f
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c
xor edi, edi
mov ecx, 4
xor edx, edx
mov r8d, 0x8a
jmp 0x14021cbfe
mov dword [rsp + 0x20], 0x119
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c
xor edi, edi
mov ecx, 4
xor edx, edx
mov r8d, 0x8b
jmp 0x14021cbfe
mov dword [rsp + 0x20], 0x12b
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c
xor edi, edi
mov ecx, 4
xor edx, edx
mov r8d, 0x69
call fcn.1403b2950
jmp 0x14021ca29
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
mov ebp, 7
test rax, rax
jne 0x14021cad7
xor eax, eax
mov rdi, qword [rsp + 0x30]
jmp 0x14021c7d8