Function at 0x576d57f0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x218
mov rbx, qword [rsp + 0x298]
test rcx, rcx
mov rdi, rcx
mov r13d, edx
mov rbp, r8
mov r12d, r9d
je 0x576d5eb4
test rbx, rbx
je 0x576d5e9b
mov ecx, dword [rsp + 0x288]
mov dword [rbx], 0
call fcn.576d30b0
test eax, eax
mov r15d, eax
jne 0x576d586e
mov eax, dword [rsp + 0x290]
xor esi, esi
mov r15d, 0x16
lea r9d, [rax - 1]
test r9b, 7
mov edx, r9d
setne sil
shr edx, 3
add esi, edx
cmp esi, dword [rsp + 0x280]
jae 0x576d5885
mov eax, r15d
add rsp, 0x218
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movsxd r14, dword [rsp + 0x288]
mov r8, qword [0x57743d80]
mov r11d, dword [rsp + 0x280]
mov rcx, r14
shl rcx, 7
mov r10d, dword [r8 + rcx + 0xc]
lea eax, [r10 + r11 + 2]
cmp esi, eax
jb 0x576d586e
mov r15d, esi
mov dword [rsp + 0x60], r9d
mov dword [rsp + 0x58], r10d
mov rcx, r15
call fcn.57732f18
mov rcx, r15
mov qword [rsp + 0x50], rax
call fcn.57732f18
mov rcx, r15
mov qword [rsp + 0x38], rax
call fcn.57732f18
mov rcx, r15
mov qword [rsp + 0x40], rax
call fcn.57732f18
mov r11, qword [rsp + 0x50]
mov qword [rsp + 0x48], rax
test r11, r11
je 0x576d5964
cmp qword [rsp + 0x38], 0
je 0x576d5964
cmp qword [rsp + 0x40], 0
je 0x576d5969
test rax, rax
mov r8d, dword [rsp + 0x58]
mov r10d, dword [rsp + 0x60]
je 0x576d5969
lea r12d, [r12 - 1]
cmp byte [rbp + r12], 0xbc
je 0x576d59b6
mov r15d, 7
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x50], r11
call fcn.57732f48
mov rcx, qword [rsp + 0x40]
call fcn.57732f48
mov rcx, qword [rsp + 0x38]
call fcn.57732f48
mov rcx, qword [rsp + 0x50]
call fcn.57732f48
jmp 0x576d586e
test r11, r11
je 0x576d5971
mov rcx, r11
call fcn.57732f48
mov rbx, qword [rsp + 0x38]
test rbx, rbx
je 0x576d5983
mov rcx, rbx
call fcn.57732f48
mov rdi, qword [rsp + 0x40]
test rdi, rdi
je 0x576d5995
mov rcx, rdi
call fcn.57732f48
mov r10, qword [rsp + 0x48]
mov r15d, 0xd
test r10, r10
je 0x576d586e
mov rcx, r10
call fcn.57732f48
jmp 0x576d586e
mov eax, r8d
mov rcx, r11
mov rdx, rbp
not eax
mov dword [rsp + 0x50], r8d
mov dword [rsp + 0x58], r10d
lea r15d, [rax + rsi]
mov qword [rsp + 0x68], r11
mov r8, r15
mov r12, r15
call fcn.57732f08
mov r8d, dword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
lea rdx, [rbp + r15]
mov dword [rsp + 0x60], r8d
mov qword [rsp + 0x50], r8
call fcn.57732f08
mov r9d, dword [rsp + 0x58]
lea ecx, [rsi*8]
movzx ebp, byte [rbp]
mov r10d, 0xff
mov edx, dword [rsp + 0x60]
mov r11, qword [rsp + 0x68]
sub ecx, r9d
sar r10d, cl
mov dword [rsp + 0x58], r10d
not r10d
test ebp, r10d
jne 0x576d592c
mov r8d, edx
mov r9, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x48]
mov ecx, dword [rsp + 0x288]
mov dword [rsp + 0x20], r15d
call fcn.576d96a0
test eax, eax
mov r15d, eax
mov r11, qword [rsp + 0x68]
jne 0x576d5932
test r12d, r12d
mov r10d, dword [rsp + 0x60]
je 0x576d5d4d
mov rax, r11
neg rax
and eax, 0xf
cmp eax, r12d
cmova eax, r12d
cmp r12d, 0x10
ja 0x576d5ecd
mov eax, r12d
mov r15, qword [rsp + 0x38]
movzx ecx, byte [r15]
xor byte [r11], cl
cmp eax, 1
je 0x576d5ff1
movzx ebp, byte [r15 + 1]
xor byte [r11 + 1], bpl
cmp eax, 2
je 0x576d5fe6
movzx r8d, byte [r15 + 2]
xor byte [r11 + 2], r8b
cmp eax, 3
je 0x576d601d
movzx r9d, byte [r15 + 3]
xor byte [r11 + 3], r9b
cmp eax, 4
je 0x576d6012
movzx edx, byte [r15 + 4]
xor byte [r11 + 4], dl
cmp eax, 5
je 0x576d6007
movzx ecx, byte [r15 + 5]
xor byte [r11 + 5], cl
cmp eax, 6
je 0x576d5ffc
movzx ebp, byte [r15 + 6]
xor byte [r11 + 6], bpl
cmp eax, 7
je 0x576d6075
movzx r8d, byte [r15 + 7]
xor byte [r11 + 7], r8b
cmp eax, 8
je 0x576d606a
movzx r9d, byte [r15 + 8]
xor byte [r11 + 8], r9b
cmp eax, 9
je 0x576d605f
movzx edx, byte [r15 + 9]
xor byte [r11 + 9], dl
cmp eax, 0xa
je 0x576d6054
movzx ecx, byte [r15 + 0xa]
xor byte [r11 + 0xa], cl
cmp eax, 0xb
je 0x576d6049
movzx ebp, byte [r15 + 0xb]
xor byte [r11 + 0xb], bpl
cmp eax, 0xc
je 0x576d603e
movzx r8d, byte [r15 + 0xc]
xor byte [r11 + 0xc], r8b
cmp eax, 0xd
je 0x576d6033
movzx r9d, byte [r15 + 0xd]
xor byte [r11 + 0xd], r9b
cmp eax, 0xe
je 0x576d6028
movzx edx, byte [r15 + 0xe]
xor byte [r11 + 0xe], dl
cmp eax, 0x10
jne 0x576d5fdb
movzx r8d, byte [r15 + 0xf]
mov r15d, 0x10
xor byte [r11 + 0xf], r8b
cmp r12d, eax
je 0x576d5d4d
mov edx, eax
mov eax, r15d
mov r8d, r12d
lea r9d, [r12 - 1]
mov ecx, edx
sub r8d, edx
lea ebp, [r8 - 0x10]
sub r9d, edx
shr ebp, 4
add ebp, 1
mov r15d, ebp
shl r15d, 4
cmp r9d, 0xe
jbe 0x576d5c27
lea r9, [r11 + rcx]
add rcx, qword [rsp + 0x38]
xor edx, edx
mov dword [rsp + 0x68], eax
mov qword [rsp + 0x60], rcx
xor ecx, ecx
mov rax, qword [rsp + 0x60]
add ecx, 1
movdqu xmm0, xmmword [rax + rdx]
pxor xmm0, xmmword [r9 + rdx]
movaps xmmword [r9 + rdx], xmm0
add rdx, 0x10
cmp ebp, ecx
ja 0x576d5bf7
mov eax, dword [rsp + 0x68]
add eax, r15d
cmp r15d, r8d
je 0x576d5d4d
mov r8, qword [rsp + 0x38]
mov ebp, eax
lea edx, [rax + 1]
movzx r9d, byte [r8 + rbp]
xor byte [r11 + rbp], r9b
cmp r12d, edx
jbe 0x576d5d4d
lea r15d, [rax + 2]
movzx ebp, byte [r8 + rdx]
xor byte [r11 + rdx], bpl
cmp r12d, r15d
jbe 0x576d5d4d
lea ebp, [rax + 3]
movzx edx, byte [r8 + r15]
xor byte [r11 + r15], dl
cmp r12d, ebp
jbe 0x576d5d4d
lea r9d, [rax + 4]
movzx r15d, byte [r8 + rbp]
xor byte [r11 + rbp], r15b
cmp r12d, r9d
jbe 0x576d5d4d
lea r15d, [rax + 5]
movzx ebp, byte [r8 + r9]
xor byte [r11 + r9], bpl
cmp r12d, r15d
jbe 0x576d5d4d
lea edx, [rax + 6]
movzx r9d, byte [r8 + r15]
xor byte [r11 + r15], r9b
cmp r12d, edx
jbe 0x576d5d4d
lea r9d, [rax + 7]
movzx r15d, byte [r8 + rdx]
xor byte [r11 + rdx], r15b
cmp r12d, r9d
jbe 0x576d5d4d
lea ebp, [rax + 8]
movzx edx, byte [r8 + r9]
xor byte [r11 + r9], dl
cmp r12d, ebp
jbe 0x576d5d4d
lea edx, [rax + 9]
movzx r9d, byte [r8 + rbp]
xor byte [r11 + rbp], r9b
cmp r12d, edx
jbe 0x576d5d4d
lea r15d, [rax + 0xa]
movzx ebp, byte [r8 + rdx]
xor byte [r11 + rdx], bpl
cmp r12d, r15d
jbe 0x576d5d4d
lea ebp, [rax + 0xb]
movzx edx, byte [r8 + r15]
xor byte [r11 + r15], dl
cmp r12d, ebp
jbe 0x576d5d4d
lea r9d, [rax + 0xc]
movzx r15d, byte [r8 + rbp]
xor byte [r11 + rbp], r15b
cmp r12d, r9d
jbe 0x576d5d4d
lea r15d, [rax + 0xd]
movzx ebp, byte [r8 + r9]
xor byte [r11 + r9], bpl
cmp r12d, r15d
jbe 0x576d5d4d
movzx ecx, byte [r8 + r15]
add eax, 0xe
xor byte [r11 + r15], cl
cmp r12d, eax
jbe 0x576d5d4d
mov r12, qword [rsp + 0x38]
movzx r9d, byte [r12 + rax]
xor byte [r11 + rax], r9b
sub esi, dword [rsp + 0x280]
movzx eax, byte [rsp + 0x58]
and eax, dword [r11]
mov ebp, esi
sub ebp, r10d
mov byte [r11], al
sub ebp, 2
je 0x576d5edc
test al, al
jne 0x576d592c
lea r15d, [rbp - 1]
xor edx, edx
lea r8, [r11 + 1]
and r15d, 7
je 0x576d5e31
lea r8, [r11 + 2]
cmp byte [r8 - 1], 0
mov edx, 1
jne 0x576d592c
cmp r15d, 1
je 0x576d5e31
cmp r15d, 2
je 0x576d5e1f
cmp r15d, 3
je 0x576d5e0d
cmp r15d, 4
je 0x576d5dfb
cmp r15d, 5
je 0x576d5de9
cmp r15d, 6
je 0x576d5dd7
add r8, 1
add edx, 1
cmp byte [r8 - 1], 0
jne 0x576d592c
add r8, 1
add edx, 1
cmp byte [r8 - 1], 0
jne 0x576d592c
add r8, 1
add edx, 1
cmp byte [r8 - 1], 0
jne 0x576d592c
add r8, 1
add edx, 1
cmp byte [r8 - 1], 0
jne 0x576d592c
add r8, 1
add edx, 1
cmp byte [r8 - 1], 0
jne 0x576d592c
add r8, 1
add edx, 1
cmp byte [r8 - 1], 0
jne 0x576d592c
lea esi, [rdx + 1]
cmp esi, ebp
je 0x576d5ede
cmp byte [r8], 0
jne 0x576d592c
cmp byte [r8 + 1], 0
jne 0x576d592c
cmp byte [r8 + 2], 0
jne 0x576d592c
cmp byte [r8 + 3], 0
jne 0x576d592c
cmp byte [r8 + 4], 0
jne 0x576d592c
cmp byte [r8 + 5], 0
jne 0x576d592c
cmp byte [r8 + 6], 0
jne 0x576d592c
add r8, 8
add edx, 8
cmp byte [r8 - 1], 0
je 0x576d5e31
jmp 0x576d592c
lea rdx, str.src_pk_pkcs1_pkcs_1_pss_decode.c
lea rcx, str.res___NULL
mov r8d, 0x29
call fcn.576cf170
lea rdx, str.src_pk_pkcs1_pkcs_1_pss_decode.c
lea rcx, str.msghash___NULL
mov r8d, 0x28
call fcn.576cf170
xor edx, edx
test eax, eax
je 0x576d5bba
jmp 0x576d5a8c
xor esi, esi
mov ecx, esi
cmp byte [r11 + rcx], 1
jne 0x576d592c
shl r14, 7
lea rbp, [rsp + 0x70]
mov qword [rsp + 0x58], r11
mov r12, r14
add r12, qword [0x57743d80]
mov rcx, rbp
call qword [r12 + 0x58]
test eax, eax
mov r15d, eax
mov r11, qword [rsp + 0x58]
jne 0x576d5932
mov r14, qword [rsp + 0x38]
mov edx, 8
mov rcx, r14
call fcn.576cfcb0
mov r8d, 8
mov rdx, r14
mov rcx, rbp
call qword [r12 + 0x60]
test eax, eax
mov r15d, eax
mov r11, qword [rsp + 0x58]
jne 0x576d5932
mov r8d, r13d
mov rdx, rdi
mov rcx, rbp
call qword [r12 + 0x60]
test eax, eax
mov r15d, eax
mov r11, qword [rsp + 0x58]
jne 0x576d5932
lea edx, [rsi + 1]
mov r8d, dword [rsp + 0x280]
mov rcx, rbp
add rdx, r11
call qword [r12 + 0x60]
test eax, eax
mov r15d, eax
mov r11, qword [rsp + 0x58]
jne 0x576d5932
mov rdx, qword [rsp + 0x38]
mov rcx, rbp
call qword [r12 + 0x68]
test eax, eax
mov r15d, eax
mov r11, qword [rsp + 0x58]
jne 0x576d5932
mov r8, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x38]
call fcn.576d6620
test eax, eax
mov r11, qword [rsp + 0x58]
jne 0x576d5932
mov dword [rbx], 1
jmp 0x576d5932
mov r15d, 0xf
jmp 0x576d5bac
mov r15d, 2
jmp 0x576d5bac
mov r15d, 1
jmp 0x576d5bac
mov r15d, 6
jmp 0x576d5bac
mov r15d, 5
jmp 0x576d5bac
mov r15d, 4
jmp 0x576d5bac
mov r15d, 3
jmp 0x576d5bac
mov r15d, 0xe
jmp 0x576d5bac
mov r15d, 0xd
jmp 0x576d5bac
mov r15d, 0xc
jmp 0x576d5bac
mov r15d, 0xb
jmp 0x576d5bac
mov r15d, 0xa
jmp 0x576d5bac
mov r15d, 9
jmp 0x576d5bac
mov r15d, 8
jmp 0x576d5bac
mov r15d, 7
jmp 0x576d5bac