Function at 0x14009f020
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 [0x14019d040]
xor rdx, rsp
mov qword [rsp + 0xb0], rdx
test r9, r9
cmove r9, r8
mov qword [rsp + 0x28], r9
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
mov edi, dword [r8 + 4]
mov r15d, edi
cmp eax, 0xffffffff
jne 0x14009f4fb
mov r13, qword [rsp + 0x120]
mov rax, qword [rcx + 8]
mov edx, dword [rax + 8]
test edx, edx
mov qword [rsp + 0x40], r8
jle 0x14009f4d3
mov rbx, qword [rax]
mov eax, edx
mov r9d, eax
cmp qword [rbx + r9*8 - 8], 0
je 0x14009f4ac
cdqe
mov r9, qword [rbx + rax*8 - 8]
xor eax, eax
test r9, r9
sete al
mov r10, r9
shr r10, 0x20
cmove r10, r9
mov r9, r10
shr r9, 0x10
cmp r10, 0x10000
cmovb r9, r10
mov r10, r9
shr r10, 8
cmp r9, 0x100
cmovb r10, r9
mov r11, r10
shr r11, 4
xor r9d, r9d
cmp r10, 0x10
cmovb r11, r10
setae r9b
shl r9d, 2
mov r10, r11
shr r10, 2
xor esi, esi
cmp r11, 4
cmovb r10, r11
setae sil
xor r11d, r11d
cmp r10, 2
setae r11b
sub r9d, eax
lea ebp, [r9 + rsi*2]
add ebp, r11d
and ebp, 7
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
test rax, rax
jne 0x14009f62b
test edx, edx
jle 0x14009f4c6
mov eax, edx
cmp qword [rbx + rax*8 - 8], 0
je 0x14009f486
movsxd rax, edx
shl edx, 6
mov r8, qword [rbx + rax*8 - 8]
xor eax, eax
test r8, r8
setne al
or eax, edx
xor ecx, ecx
mov r9, r8
shr r9, 0x20
setne cl
cmove r9, r8
shl ecx, 5
mov r10, r9
shr r10, 0x10
xor edx, edx
cmp r9, 0x10000
setae dl
cmovb r10, r9
shl edx, 4
mov r9, r10
shr r9, 8
xor r8d, r8d
cmp r10, 0x100
setae r8b
cmovb r9, r10
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, 0xffffffc7
shr eax, 3
movzx edx, byte [r13]
mov ecx, ebp
shr edx, cl
test edx, edx
jne 0x14009f52e
mov r12d, eax
xor r14d, r14d
test ebp, ebp
sete r14b
mov qword [rsp + 0x30], r12
sub r12, r14
lea rax, [rdi + 2]
cmp r12, rax
jb 0x14009f570
mov esi, r15d
test r15d, r15d
js 0x14009f23d
add rax, rsi
cmp r12, rax
jb 0x14009f570
add r13, r14
cmp byte [r13 + r12 - 1], 0xbc
jne 0x14009f54f
mov ebx, r15d
mov rax, rdi
not rax
add r12, rax
mov rcx, r12
call fcn.1400a4a90
mov r9, rdi
xor edi, edi
test rax, rax
je 0x14009f4e3
mov r15, rax
lea r8, [r12 + r13]
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x20], rax
mov rcx, r15
mov rdx, r12
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x28], r9
call fcn.140051090
test eax, eax
je 0x14009f44c
test r12, r12
je 0x14009f2b4
xor eax, eax
mov cl, byte [r13 + rax]
xor byte [r15 + rax], cl
inc rax
cmp rax, r12
jb 0x14009f2a3
test ebp, ebp
je 0x14009f2c7
mov cl, 8
sub cl, bpl
mov eax, 0xff
shr eax, cl
and byte [r15], al
neg r14
lea rax, [r12 - 1]
xor ecx, ecx
mov dl, byte [r15 + rcx]
lea r13, [rcx + 1]
test dl, dl
jne 0x14009f2e5
cmp rcx, rax
mov rcx, r13
jb 0x14009f2d1
cmp dl, 1
jne 0x14009f5ce
test ebx, ebx
js 0x14009f30b
add r14, qword [rsp + 0x30]
not rsi
add rsi, r14
sub rsi, qword [rsp + 0x28]
cmp rsi, r13
jne 0x14009f5ae
movaps xmm0, xmmword [0x140171db0]
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 0x14009f363
mov ecx, dword [rsi + 0x2c]
call fcn.1400a4a90
test rax, rax
je 0x14009f44c
mov r14, rax
xor ecx, ecx
call fcn.1400a4af0
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x50], rsi
mov rdi, r14
sub r12, r13
mov rax, qword [rsi + 0x10]
lea rcx, [0x14013b720]
cmp rax, rcx
jne 0x14009f4eb
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 [0x140185f70]
movups xmmword [rdi], xmm0
movaps xmm0, xmmword [0x140185f80]
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, [0x1401866f4]
mov r8d, 8
mov rcx, rdi
call qword [0x1401904a0]
mov rax, qword [rdi]
mov rax, qword [rax + 0x18]
mov rcx, rdi
mov rdx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x28]
mov r8, rsi
call qword [0x1401904a0]
mov rdx, r15
add rdx, r13
mov rax, qword [rdi]
mov rax, qword [rax + 0x18]
mov rcx, rdi
mov r8, r12
call qword [0x1401904a0]
mov rax, qword [rdi]
mov rax, qword [rax + 0x20]
lea rdx, [rsp + 0x70]
mov rcx, rdi
call qword [0x1401904a0]
mov rax, qword [rdi]
mov rcx, qword [rdi + 8]
mov edx, dword [rax + 0x2c]
call fcn.1400a4b30
mov edi, 1
test esi, esi
je 0x14009f44c
lea rcx, [rsp + 0x70]
mov rdx, qword [rsp + 0x38]
mov r8, rsi
call fcn.1400f5680
test eax, eax
jne 0x14009f5ee
mov rcx, r15
call fcn.1400a4af0
mov rcx, qword [rsp + 0x58]
call fcn.1400a4af0
mov rax, qword [rsp + 0x68]
test rax, rax
jne 0x14009f59b
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
cmp rcx, qword [0x14019d040]
je 0x14009f496
call fcn.1400c6de0
int3
lea eax, [rdx - 1]
cmp edx, 1
mov edx, eax
jg 0x14009f147
jmp 0x14009f4cc
mov eax, edi
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r9d, [rax - 1]
cmp eax, 1
mov eax, r9d
jg 0x14009f09b
mov ebp, 7
jmp 0x14009f12f
jne 0x14009f155
xor eax, eax
jmp 0x14009f1f7
je 0x14009f616
mov rbx, qword [rax]
mov eax, edx
jmp 0x14009f0aa
xor r15d, r15d
jmp 0x14009f44c
lea rcx, [rsp + 0x50]
call qword [0x1401904a0]
jmp 0x14009f3ad
mov r15d, eax
cmp eax, 0xfffffffe
je 0x14009f07a
jge 0x14009f07a
mov dword [rsp + 0x20], 0xe8
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c.inc
xor r15d, r15d
mov ecx, 4
xor edx, edx
mov r8d, 0x8a
jmp 0x14009f58f
mov dword [rsp + 0x20], 0xef
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c.inc
xor r15d, r15d
mov ecx, 4
xor edx, edx
mov r8d, 0x7a
jmp 0x14009f58f
mov dword [rsp + 0x20], 0xfd
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c.inc
xor r15d, r15d
mov ecx, 4
xor edx, edx
mov r8d, 0x7f
jmp 0x14009f58f
mov dword [rsp + 0x20], 0xf9
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c.inc
xor r15d, r15d
mov ecx, 4
xor edx, edx
mov r8d, 0x71
call fcn.1401484b0
xor edi, edi
jmp 0x14009f44c
mov rax, qword [rax]
mov rcx, qword [rsp + 0x60]
call qword [0x1401904a0]
jmp 0x14009f46c
mov dword [rsp + 0x20], 0x11e
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c.inc
xor edi, edi
mov ecx, 4
xor edx, edx
mov r8d, 0x8a
jmp 0x14009f60c
mov dword [rsp + 0x20], 0x118
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c.inc
xor edi, edi
mov ecx, 4
xor edx, edx
mov r8d, 0x8b
jmp 0x14009f60c
mov dword [rsp + 0x20], 0x12a
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c.inc
xor edi, edi
mov ecx, 4
xor edx, edx
mov r8d, 0x69
call fcn.1401484b0
jmp 0x14009f44c
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
mov ebp, 7
test rax, rax
je 0x14009f4cc
call qword [0x1401904a0]
jmp 0x14009f1f7