Function at 0x52114820
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 0x52114ee4
test rbx, rbx
je 0x52114ecb
mov ecx, dword [rsp + 0x288]
mov dword [rbx], 0
call fcn.521120e0
test eax, eax
mov r15d, eax
jne 0x5211489e
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 0x521148b5
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 [0x52182c60]
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 0x5211489e
mov r15d, esi
mov dword [rsp + 0x60], r9d
mov dword [rsp + 0x58], r10d
mov rcx, r15
call fcn.52171f48
mov rcx, r15
mov qword [rsp + 0x50], rax
call fcn.52171f48
mov rcx, r15
mov qword [rsp + 0x38], rax
call fcn.52171f48
mov rcx, r15
mov qword [rsp + 0x40], rax
call fcn.52171f48
mov r11, qword [rsp + 0x50]
mov qword [rsp + 0x48], rax
test r11, r11
je 0x52114994
cmp qword [rsp + 0x38], 0
je 0x52114994
cmp qword [rsp + 0x40], 0
je 0x52114999
test rax, rax
mov r8d, dword [rsp + 0x58]
mov r10d, dword [rsp + 0x60]
je 0x52114999
lea r12d, [r12 - 1]
cmp byte [rbp + r12], 0xbc
je 0x521149e6
mov r15d, 7
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x50], r11
call fcn.52171f78
mov rcx, qword [rsp + 0x40]
call fcn.52171f78
mov rcx, qword [rsp + 0x38]
call fcn.52171f78
mov rcx, qword [rsp + 0x50]
call fcn.52171f78
jmp 0x5211489e
test r11, r11
je 0x521149a1
mov rcx, r11
call fcn.52171f78
mov rbx, qword [rsp + 0x38]
test rbx, rbx
je 0x521149b3
mov rcx, rbx
call fcn.52171f78
mov rdi, qword [rsp + 0x40]
test rdi, rdi
je 0x521149c5
mov rcx, rdi
call fcn.52171f78
mov r10, qword [rsp + 0x48]
mov r15d, 0xd
test r10, r10
je 0x5211489e
mov rcx, r10
call fcn.52171f78
jmp 0x5211489e
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.52171f38
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.52171f38
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 0x5211495c
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.521186d0
test eax, eax
mov r15d, eax
mov r11, qword [rsp + 0x68]
jne 0x52114962
test r12d, r12d
mov r10d, dword [rsp + 0x60]
je 0x52114d7d
mov rax, r11
neg rax
and eax, 0xf
cmp eax, r12d
cmova eax, r12d
cmp r12d, 0x10
ja 0x52114efd
mov eax, r12d
mov r15, qword [rsp + 0x38]
movzx ecx, byte [r15]
xor byte [r11], cl
cmp eax, 1
je 0x52115021
movzx ebp, byte [r15 + 1]
xor byte [r11 + 1], bpl
cmp eax, 2
je 0x52115016
movzx r8d, byte [r15 + 2]
xor byte [r11 + 2], r8b
cmp eax, 3
je 0x5211504d
movzx r9d, byte [r15 + 3]
xor byte [r11 + 3], r9b
cmp eax, 4
je 0x52115042
movzx edx, byte [r15 + 4]
xor byte [r11 + 4], dl
cmp eax, 5
je 0x52115037
movzx ecx, byte [r15 + 5]
xor byte [r11 + 5], cl
cmp eax, 6
je 0x5211502c
movzx ebp, byte [r15 + 6]
xor byte [r11 + 6], bpl
cmp eax, 7
je 0x521150a5
movzx r8d, byte [r15 + 7]
xor byte [r11 + 7], r8b
cmp eax, 8
je 0x5211509a
movzx r9d, byte [r15 + 8]
xor byte [r11 + 8], r9b
cmp eax, 9
je 0x5211508f
movzx edx, byte [r15 + 9]
xor byte [r11 + 9], dl
cmp eax, 0xa
je 0x52115084
movzx ecx, byte [r15 + 0xa]
xor byte [r11 + 0xa], cl
cmp eax, 0xb
je 0x52115079
movzx ebp, byte [r15 + 0xb]
xor byte [r11 + 0xb], bpl
cmp eax, 0xc
je 0x5211506e
movzx r8d, byte [r15 + 0xc]
xor byte [r11 + 0xc], r8b
cmp eax, 0xd
je 0x52115063
movzx r9d, byte [r15 + 0xd]
xor byte [r11 + 0xd], r9b
cmp eax, 0xe
je 0x52115058
movzx edx, byte [r15 + 0xe]
xor byte [r11 + 0xe], dl
cmp eax, 0x10
jne 0x5211500b
movzx r8d, byte [r15 + 0xf]
mov r15d, 0x10
xor byte [r11 + 0xf], r8b
cmp r12d, eax
je 0x52114d7d
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 0x52114c57
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 0x52114c27
mov eax, dword [rsp + 0x68]
add eax, r15d
cmp r15d, r8d
je 0x52114d7d
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 0x52114d7d
lea r15d, [rax + 2]
movzx ebp, byte [r8 + rdx]
xor byte [r11 + rdx], bpl
cmp r12d, r15d
jbe 0x52114d7d
lea ebp, [rax + 3]
movzx edx, byte [r8 + r15]
xor byte [r11 + r15], dl
cmp r12d, ebp
jbe 0x52114d7d
lea r9d, [rax + 4]
movzx r15d, byte [r8 + rbp]
xor byte [r11 + rbp], r15b
cmp r12d, r9d
jbe 0x52114d7d
lea r15d, [rax + 5]
movzx ebp, byte [r8 + r9]
xor byte [r11 + r9], bpl
cmp r12d, r15d
jbe 0x52114d7d
lea edx, [rax + 6]
movzx r9d, byte [r8 + r15]
xor byte [r11 + r15], r9b
cmp r12d, edx
jbe 0x52114d7d
lea r9d, [rax + 7]
movzx r15d, byte [r8 + rdx]
xor byte [r11 + rdx], r15b
cmp r12d, r9d
jbe 0x52114d7d
lea ebp, [rax + 8]
movzx edx, byte [r8 + r9]
xor byte [r11 + r9], dl
cmp r12d, ebp
jbe 0x52114d7d
lea edx, [rax + 9]
movzx r9d, byte [r8 + rbp]
xor byte [r11 + rbp], r9b
cmp r12d, edx
jbe 0x52114d7d
lea r15d, [rax + 0xa]
movzx ebp, byte [r8 + rdx]
xor byte [r11 + rdx], bpl
cmp r12d, r15d
jbe 0x52114d7d
lea ebp, [rax + 0xb]
movzx edx, byte [r8 + r15]
xor byte [r11 + r15], dl
cmp r12d, ebp
jbe 0x52114d7d
lea r9d, [rax + 0xc]
movzx r15d, byte [r8 + rbp]
xor byte [r11 + rbp], r15b
cmp r12d, r9d
jbe 0x52114d7d
lea r15d, [rax + 0xd]
movzx ebp, byte [r8 + r9]
xor byte [r11 + r9], bpl
cmp r12d, r15d
jbe 0x52114d7d
movzx ecx, byte [r8 + r15]
add eax, 0xe
xor byte [r11 + r15], cl
cmp r12d, eax
jbe 0x52114d7d
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 0x52114f0c
test al, al
jne 0x5211495c
lea r15d, [rbp - 1]
xor edx, edx
lea r8, [r11 + 1]
and r15d, 7
je 0x52114e61
lea r8, [r11 + 2]
cmp byte [r8 - 1], 0
mov edx, 1
jne 0x5211495c
cmp r15d, 1
je 0x52114e61
cmp r15d, 2
je 0x52114e4f
cmp r15d, 3
je 0x52114e3d
cmp r15d, 4
je 0x52114e2b
cmp r15d, 5
je 0x52114e19
cmp r15d, 6
je 0x52114e07
add r8, 1
add edx, 1
cmp byte [r8 - 1], 0
jne 0x5211495c
add r8, 1
add edx, 1
cmp byte [r8 - 1], 0
jne 0x5211495c
add r8, 1
add edx, 1
cmp byte [r8 - 1], 0
jne 0x5211495c
add r8, 1
add edx, 1
cmp byte [r8 - 1], 0
jne 0x5211495c
add r8, 1
add edx, 1
cmp byte [r8 - 1], 0
jne 0x5211495c
add r8, 1
add edx, 1
cmp byte [r8 - 1], 0
jne 0x5211495c
lea esi, [rdx + 1]
cmp esi, ebp
je 0x52114f0e
cmp byte [r8], 0
jne 0x5211495c
cmp byte [r8 + 1], 0
jne 0x5211495c
cmp byte [r8 + 2], 0
jne 0x5211495c
cmp byte [r8 + 3], 0
jne 0x5211495c
cmp byte [r8 + 4], 0
jne 0x5211495c
cmp byte [r8 + 5], 0
jne 0x5211495c
cmp byte [r8 + 6], 0
jne 0x5211495c
add r8, 8
add edx, 8
cmp byte [r8 - 1], 0
je 0x52114e61
jmp 0x5211495c
lea rdx, str.src_pk_pkcs1_pkcs_1_pss_decode.c
lea rcx, str.res___NULL
mov r8d, 0x29
call fcn.5210e1a0
lea rdx, str.src_pk_pkcs1_pkcs_1_pss_decode.c
lea rcx, str.msghash___NULL
mov r8d, 0x28
call fcn.5210e1a0
xor edx, edx
test eax, eax
je 0x52114bea
jmp 0x52114abc
xor esi, esi
mov ecx, esi
cmp byte [r11 + rcx], 1
jne 0x5211495c
shl r14, 7
lea rbp, [rsp + 0x70]
mov qword [rsp + 0x58], r11
mov r12, r14
add r12, qword [0x52182c60]
mov rcx, rbp
call qword [r12 + 0x58]
test eax, eax
mov r15d, eax
mov r11, qword [rsp + 0x58]
jne 0x52114962
mov r14, qword [rsp + 0x38]
mov edx, 8
mov rcx, r14
call fcn.5210ece0
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 0x52114962
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 0x52114962
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 0x52114962
mov rdx, qword [rsp + 0x38]
mov rcx, rbp
call qword [r12 + 0x68]
test eax, eax
mov r15d, eax
mov r11, qword [rsp + 0x58]
jne 0x52114962
mov r8, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x38]
call fcn.52115650
test eax, eax
mov r11, qword [rsp + 0x58]
jne 0x52114962
mov dword [rbx], 1
jmp 0x52114962
mov r15d, 0xf
jmp 0x52114bdc
mov r15d, 2
jmp 0x52114bdc
mov r15d, 1
jmp 0x52114bdc
mov r15d, 6
jmp 0x52114bdc
mov r15d, 5
jmp 0x52114bdc
mov r15d, 4
jmp 0x52114bdc
mov r15d, 3
jmp 0x52114bdc
mov r15d, 0xe
jmp 0x52114bdc
mov r15d, 0xd
jmp 0x52114bdc
mov r15d, 0xc
jmp 0x52114bdc
mov r15d, 0xb
jmp 0x52114bdc
mov r15d, 0xa
jmp 0x52114bdc
mov r15d, 9
jmp 0x52114bdc
mov r15d, 8
jmp 0x52114bdc
mov r15d, 7
jmp 0x52114bdc