Function at 0x18012f5e0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0xa8
call fcn.1800b9c10
sub rsp, rax
mov rax, qword [0x1802e4710]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov rdi, qword [rsp + 0x110]
mov r13, r9
mov rsi, r8
mov qword [rsp + 0x40], r8
mov qword [rsp + 0x48], rdx
mov rbx, rcx
xor ebp, ebp
call fcn.1800de700
mov qword [rsp + 0x30], rax
test rax, rax
je 0x18012fa1f
test r13, r13
mov rcx, rsi
cmove r13, rsi
call fcn.1800cbf00
movsxd r14, eax
test eax, eax
js 0x18012f6fa
mov esi, dword [rsp + 0x118]
cmp esi, 0xffffffff
jne 0x18012f6c7
mov esi, r14d
mov rcx, qword [rbx + 0x28]
call fcn.1800e3b30
mov rcx, rbx
lea r15d, [rax - 1]
and r15d, 7
call fcn.18012efb0
mov ecx, r15d
mov edx, 0xff
mov r11d, eax
shl edx, cl
test byte [rdi], dl
je 0x18012f704
call fcn.1800cb1c0
lea r8, str.RSA_verify_PKCS1_PSS_mgf1
lea rcx, str.crypto_rsa_rsa_pss.c
mov edx, 0x4c
call fcn.1800cb230
xor r8d, r8d
mov edx, 0x85
lea ecx, [r8 + 4]
call fcn.1800cb480
mov rsi, qword [rsp + 0x30]
jmp 0x18012fa22
cmp esi, 0xfffffffd
jge 0x18012f665
call fcn.1800cb1c0
lea r8, str.RSA_verify_PKCS1_PSS_mgf1
lea rcx, str.crypto_rsa_rsa_pss.c
mov edx, 0x45
call fcn.1800cb230
xor r8d, r8d
mov edx, 0x88
lea ecx, [r8 + 4]
call fcn.1800cb480
mov rsi, qword [rsp + 0x30]
jmp 0x18012fa22
test r15d, r15d
jne 0x18012f70f
inc rdi
dec r11d
lea eax, [r14 + 2]
cmp r11d, eax
jge 0x18012f74e
call fcn.1800cb1c0
lea r8, str.RSA_verify_PKCS1_PSS_mgf1
lea rcx, str.crypto_rsa_rsa_pss.c
mov edx, 0x54
call fcn.1800cb230
xor r8d, r8d
lea edx, [r8 + 0x6d]
lea ecx, [rdx - 0x69]
call fcn.1800cb480
mov rsi, qword [rsp + 0x30]
jmp 0x18012fa22
mov ecx, r11d
sub ecx, r14d
cmp esi, 0xfffffffd
jne 0x18012f79e
lea esi, [rcx - 2]
movsxd rax, r11d
cmp byte [rax + rdi - 1], 0xbc
je 0x18012f7db
call fcn.1800cb1c0
lea r8, str.RSA_verify_PKCS1_PSS_mgf1
lea rcx, str.crypto_rsa_rsa_pss.c
mov edx, 0x5e
call fcn.1800cb230
xor r8d, r8d
mov edx, 0x86
lea ecx, [r8 + 4]
call fcn.1800cb480
mov rsi, qword [rsp + 0x30]
jmp 0x18012fa22
lea eax, [rcx - 2]
cmp esi, eax
jle 0x18012f75c
call fcn.1800cb1c0
lea r8, str.RSA_verify_PKCS1_PSS_mgf1
lea rcx, str.crypto_rsa_rsa_pss.c
mov edx, 0x5a
call fcn.1800cb230
xor r8d, r8d
lea edx, [r8 + 0x6d]
lea ecx, [rdx - 0x69]
call fcn.1800cb480
mov rsi, qword [rsp + 0x30]
jmp 0x18012fa22
lea r12d, [rcx - 1]
lea rdx, str.crypto_rsa_rsa_pss.c
mov r8d, 0x63
movsxd rbx, r12d
mov rcx, rbx
lea rax, [rbx + rdi]
mov qword [rsp + 0x38], rax
call fcn.1800ca810
mov rbp, rax
test rax, rax
jne 0x18012f83d
call fcn.1800cb1c0
lea r8, str.RSA_verify_PKCS1_PSS_mgf1
lea edx, [rbp + 0x65]
lea rcx, str.crypto_rsa_rsa_pss.c
call fcn.1800cb230
lea ecx, [rbp + 4]
xor r8d, r8d
mov edx, 0xc0100
call fcn.1800cb480
mov rsi, qword [rsp + 0x30]
jmp 0x18012fa22
mov r8, qword [rsp + 0x38]
mov r9d, r14d
mov edx, r12d
mov rcx, rax
mov qword [rsp + 0x20], r13
call fcn.180130b90
test eax, eax
js 0x18012f6fa
test r12d, r12d
jle 0x18012f87f
mov rcx, rbp
sub rdi, rbp
nop dword [rax + rax]
movzx eax, byte [rdi + rcx]
inc rcx
xor byte [rcx - 1], al
dec rbx
jne 0x18012f870
test r15d, r15d
je 0x18012f896
mov ecx, 8
mov eax, 0xff
sub ecx, r15d
sar eax, cl
and byte [rbp], al
xor r13d, r13d
mov ebx, r13d
cmp byte [rbp], bl
jne 0x18012f8be
lea ecx, [r12 - 1]
mov rax, rbp
nop dword [rax]
cmp ebx, ecx
jge 0x18012f8be
inc rax
inc ebx
cmp byte [rax], r13b
je 0x18012f8b0
movsxd rax, ebx
inc ebx
cmp byte [rax + rbp], 1
je 0x18012f901
call fcn.1800cb1c0
lea r8, str.RSA_verify_PKCS1_PSS_mgf1
lea rcx, str.crypto_rsa_rsa_pss.c
mov edx, reloc.WS2_32.dll_WSASetLastError
call fcn.1800cb230
xor r8d, r8d
mov edx, 0x87
lea ecx, [r8 + 4]
call fcn.1800cb480
mov rsi, qword [rsp + 0x30]
jmp 0x18012fa25
cmp esi, 0xfffffffe
je 0x18012f953
mov edi, r12d
sub edi, ebx
cmp edi, esi
je 0x18012f953
call fcn.1800cb1c0
lea r8, str.RSA_verify_PKCS1_PSS_mgf1
lea rcx, str.crypto_rsa_rsa_pss.c
mov edx, reloc.WS2_32.dll_WSACleanup
call fcn.1800cb230
lea r8, str.expected:__d_retrieved:__d
mov r9d, esi
mov edx, 0x88
mov ecx, 4
mov dword [rsp + 0x20], edi
call fcn.1800cb480
mov rsi, qword [rsp + 0x30]
jmp 0x18012fa25
mov rsi, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x40]
xor r8d, r8d
mov rcx, rsi
call fcn.1800e0240
test eax, eax
je 0x18012fa25
lea rdx, [0x180253630]
mov r8d, 8
mov rcx, rsi
call fcn.1800de730
test eax, eax
je 0x18012fa25
mov rdx, qword [rsp + 0x48]
mov r8, r14
mov rcx, rsi
call fcn.1800de730
test eax, eax
je 0x18012fa25
sub r12d, ebx
je 0x18012f9bf
movsxd rdx, ebx
movsxd r8, r12d
mov rcx, rsi
add rdx, rbp
call fcn.1800de730
test eax, eax
je 0x18012fa25
lea rdx, [rsp + 0x50]
xor r8d, r8d
mov rcx, rsi
call fcn.1800de850
test eax, eax
je 0x18012fa25
mov rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x50]
mov r8, r14
call fcn.1800bd270
test eax, eax
je 0x18012fa17
call fcn.1800cb1c0
lea r8, str.RSA_verify_PKCS1_PSS_mgf1
lea rcx, str.crypto_rsa_rsa_pss.c
mov edx, 0x84
call fcn.1800cb230
xor r8d, r8d
lea edx, [r8 + 0x68]
lea ecx, [rdx - 0x64]
call fcn.1800cb480
jmp 0x18012fa25
mov r13d, 1
jmp 0x18012fa25
mov rsi, rax
xor r13d, r13d
lea rdx, str.crypto_rsa_rsa_pss.c
mov r8d, 0x8b
mov rcx, rbp
call fcn.1800ca8e0
mov rcx, rsi
call fcn.1800def40
mov eax, r13d
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.1800acfa0
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret