Function at 0x140095900
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 + 0x40], r8
mov qword [rsp + 0x48], rdx
mov eax, dword [rsp + 0x128]
mov rdx, qword [0x140196028]
xor rdx, rsp
mov qword [rsp + 0xb0], rdx
test r9, r9
cmove r9, r8
mov qword [rsp + 0x30], r9
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
mov edx, dword [r8 + 4]
mov qword [rsp + 0x38], rdx
mov dword [rsp + 0x2c], edx
cmp eax, 0xffffffff
jne 0x140095ec1
mov r14, qword [rsp + 0x120]
mov rdx, qword [rcx + 8]
mov r9d, dword [rdx + 8]
mov r8d, r9d
sar r8d, 0x1f
and r8d, r9d
lea r10d, [r9 + 1]
mov r11, r9
test r11d, r11d
jle 0x140095f07
mov rax, qword [rdx]
dec r10d
cmp qword [rax + r11*8 - 8], 0
lea r11, [r11 - 1]
je 0x140095986
movsxd r11, r10d
shl r10d, 6
mov r11, qword [rax + r11*8 - 8]
xor eax, eax
test r11, r11
setne al
or eax, r10d
xor r10d, r10d
mov rsi, r11
shr rsi, 0x20
cmove rsi, r11
setne r10b
shl r10d, 5
mov rdi, rsi
shr rdi, 0x10
xor r11d, r11d
cmp rsi, 0x10000
cmovb rdi, rsi
setae r11b
shl r11d, 4
mov rbx, rdi
shr rbx, 8
xor esi, esi
cmp rdi, 0x100
cmovb rbx, rdi
setae sil
mov rdi, rbx
shr rdi, 4
xor r15d, r15d
cmp rbx, 0x10
setae r15b
cmovb rdi, rbx
mov rbx, rdi
shr rbx, 2
xor r12d, r12d
cmp rdi, 4
setae r12b
cmovb rbx, rdi
add r12d, r12d
or r10d, eax
or r10d, r11d
lea eax, [r10 + rsi*8]
lea ebp, [rax + r15*4]
add ebp, 0xffffffc0
or ebp, r12d
cmp rbx, 2
sbb ebp, 0xffffffff
dec ebp
and ebp, 7
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
test rax, rax
jne 0x140095efc
lea ecx, [r9 + 1]
mov r10, r9
test r10d, r10d
jle 0x140095f17
mov rax, qword [rdx]
dec ecx
cmp qword [rax + r10*8 - 8], 0
lea r10, [r10 - 1]
je 0x140095a69
movsxd rdx, ecx
shl ecx, 6
mov rdx, qword [rax + rdx*8 - 8]
xor eax, eax
test rdx, rdx
setne al
or eax, ecx
xor ecx, ecx
mov r8, rdx
shr r8, 0x20
cmove r8, rdx
setne cl
shl ecx, 5
mov r9, r8
shr r9, 0x10
xor edx, edx
cmp r8, 0x10000
cmovb r9, r8
setae dl
shl edx, 4
mov r10, r9
shr r10, 8
xor r8d, r8d
cmp r9, 0x100
cmovb r10, r9
setae r8b
mov r9, r10
shr r9, 4
xor r11d, r11d
cmp r10, 0x10
setae r11b
cmovb r9, r10
mov r10, r9
shr r10, 2
xor esi, esi
cmp r9, 4
setae sil
cmovb r10, r9
add esi, esi
or ecx, eax
or ecx, edx
lea eax, [rcx + r8*8]
lea eax, [rax + r11*4]
add eax, 0xffffffc0
or eax, esi
cmp r10, 2
sbb eax, 0xffffffff
add eax, 7
shr eax, 3
movzx edx, byte [r14]
mov ecx, ebp
shr edx, cl
test edx, edx
jne 0x140095e5b
mov ebx, eax
xor r13d, r13d
test ebp, ebp
sete r13b
mov r12, rbx
sub r12, r13
mov rax, qword [rsp + 0x38]
add rax, 2
cmp r12, rax
jb 0x140095de8
mov ecx, dword [rsp + 0x2c]
mov esi, ecx
test ecx, ecx
js 0x140095b72
add rax, rsi
cmp r12, rax
jb 0x140095de8
add r14, r13
cmp byte [r12 + r14 - 1], 0xbc
jne 0x140095e7b
mov rdi, qword [rsp + 0x38]
mov rax, rdi
not rax
add r12, rax
mov rcx, r12
call fcn.140096eb0
test rax, rax
je 0x140095dd1
mov r15, rax
lea r8, [r14 + r12]
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x20], rax
mov rcx, r15
mov rdx, r12
mov qword [rsp + 0x30], r8
mov r9, rdi
call fcn.1400504e0
test eax, eax
je 0x140095dd4
test r12, r12
je 0x140095be3
xor eax, eax
mov cl, byte [r14 + rax]
xor byte [r15 + rax], cl
inc rax
cmp rax, r12
jb 0x140095bd3
test ebp, ebp
je 0x140095bf6
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 r14, [rcx + 1]
test dl, dl
jne 0x140095c14
cmp rcx, rax
mov rcx, r14
jb 0x140095c00
cmp dl, 1
mov rbp, qword [rsp + 0x38]
jne 0x140095e13
cmp dword [rsp + 0x2c], 0
js 0x140095c3e
add r13, rbx
not rsi
add rsi, r13
sub rsi, rbp
cmp rsi, r14
jne 0x140095e9e
movaps xmm0, xmmword [0x14016f5d0]
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x70], xmm0
mov rsi, qword [rsp + 0x40]
cmp qword [rsp + 0x50], rsi
je 0x140095c96
mov ecx, dword [rsi + 0x2c]
call fcn.140096eb0
test rax, rax
je 0x140095dd4
mov rdi, rax
mov rcx, qword [rsp + 0x58]
call fcn.140096f10
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x50], rsi
sub r12, r14
mov rax, qword [rsi + 0x10]
lea rcx, [0x140051a40]
cmp rax, rcx
jne 0x140095dc1
mov rax, qword [rsp + 0x58]
xorps xmm0, xmm0
movups xmmword [rax + 0x5c], xmm0
movups xmmword [rax + 0x50], xmm0
movups xmmword [rax + 0x40], xmm0
movups xmmword [rax + 0x30], xmm0
movups xmmword [rax + 0x20], xmm0
movaps xmm0, xmmword [0x14017d120]
movups xmmword [rax], xmm0
movaps xmm0, xmmword [0x14017d130]
movups xmmword [rax + 0x10], xmm0
mov dword [rax + 0x6c], 0x20
lea rdi, [rsp + 0x50]
mov rax, qword [rdi]
mov rax, qword [rax + 0x18]
lea rdx, [0x14017d860]
mov r8d, 8
mov rcx, rdi
call qword [0x1401c0008]
mov rax, qword [rdi]
mov rax, qword [rax + 0x18]
mov rcx, rdi
mov rdx, qword [rsp + 0x48]
mov r8, rbp
call qword [0x1401c0008]
mov rdx, r15
add rdx, r14
mov rax, qword [rdi]
mov rax, qword [rax + 0x18]
mov rcx, rdi
mov r8, r12
call qword [0x1401c0008]
mov rax, qword [rdi]
mov rax, qword [rax + 0x20]
lea rdx, [rsp + 0x70]
mov rcx, rdi
call qword [0x1401c0008]
mov rax, qword [rdi]
mov rcx, qword [rdi + 8]
mov edx, dword [rax + 0x2c]
call fcn.140096f50
mov esi, 1
test ebp, ebp
je 0x140095d7f
lea rcx, [rsp + 0x70]
mov rdx, qword [rsp + 0x30]
mov r8, rbp
call fcn.1400bf6d0
test eax, eax
jne 0x140095e3b
mov rcx, r15
call fcn.140096f10
mov rcx, qword [rsp + 0x58]
call fcn.140096f10
mov rax, qword [rsp + 0x68]
test rax, rax
jne 0x140095dd8
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.1400bdd30
mov eax, esi
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [rsp + 0x50]
call qword [0x1401c0008]
jmp 0x140095ce5
xor r15d, r15d
xor esi, esi
jmp 0x140095d7f
mov rax, qword [rax]
mov rcx, qword [rsp + 0x60]
call qword [0x1401c0008]
jmp 0x140095d9b
mov dword [rsp + 0x20], 0xfa
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c
xor esi, esi
mov ecx, 4
xor edx, edx
mov r8d, 0x71
call fcn.1401451c0
xor r15d, r15d
jmp 0x140095d7f
mov dword [rsp + 0x20], 0x119
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c
xor esi, esi
mov ecx, 4
xor edx, edx
mov r8d, 0x8b
call fcn.1401451c0
jmp 0x140095d7f
mov dword [rsp + 0x20], 0x12b
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c
xor esi, esi
mov ecx, 4
xor edx, edx
mov r8d, 0x69
jmp 0x140095e31
mov dword [rsp + 0x20], 0xf0
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c
xor esi, esi
mov ecx, 4
xor edx, edx
mov r8d, 0x7a
jmp 0x140095e06
mov dword [rsp + 0x20], 0xfe
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c
xor esi, esi
mov ecx, 4
xor edx, edx
mov r8d, 0x7f
jmp 0x140095e06
mov dword [rsp + 0x20], 0x11f
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c
xor esi, esi
mov ecx, 4
xor edx, edx
mov r8d, 0x8a
jmp 0x140095e31
cmp eax, 0xfffffffe
jne 0x140095ecf
mov dword [rsp + 0x2c], eax
jmp 0x140095965
mov dword [rsp + 0x2c], eax
jge 0x140095965
mov dword [rsp + 0x20], 0xe9
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c
xor esi, esi
mov ecx, 4
xor edx, edx
mov r8d, 0x8a
jmp 0x140095e06
call qword [0x1401c0008]
jmp 0x140095b29
test r9d, r9d
jns 0x140095f27
mov rax, qword [rdx]
mov r10d, r8d
jmp 0x1400959a1
test r9d, r9d
jns 0x140095f2e
mov rax, qword [rdx]
mov ecx, r8d
jmp 0x140095a83
xor ebp, ebp
jmp 0x140095a4d
xor eax, eax
jmp 0x140095b23