Function at 0x140177b60
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
mov rdi, qword [rsp + 0x130]
lea r14, [rsp + 0x50]
mov r12, r8
mov rbx, r9
mov rbp, rcx
mov rcx, r14
mov qword [rsp + 0x118], rdx
call fcn.1400bb870
test rbx, rbx
mov rcx, r12
cmove rbx, r12
xor r13d, r13d
call fcn.1400c5b40
mov r15d, eax
test eax, eax
js 0x140177c4f
cmp dword [rsp + 0x138], 0xffffffff
je 0x140177f68
cmp dword [rsp + 0x138], 0xfffffffe
je 0x140177bd4
jl 0x140177f38
mov rcx, qword [rbp + 0x18]
mov r13d, 0xff
call fcn.14008b2e0
mov rcx, rbp
lea esi, [rax - 1]
call fcn.1400aa190
and esi, 7
movzx edx, byte [rdi]
mov ecx, esi
shl r13d, cl
and r13d, edx
jne 0x140177f78
test esi, esi
jne 0x140177c0d
add rdi, 1
sub eax, 1
mov ecx, dword [rsp + 0x138]
lea edx, [r15 + rcx + 1]
cmp edx, eax
jge 0x140177f08
movsxd rdx, eax
cmp byte [rdi + rdx - 1], 0xbc
je 0x140177c70
mov r8d, 0x86
mov edx, 0x95
mov ecx, 4
mov dword [rsp + 0x20], 0x82
lea r9, str.rsa_pss.c
call fcn.1400ba710
mov rcx, r14
call fcn.1400bbfd0
mov eax, r13d
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
sub eax, r15d
mov r8d, 0x87
lea rdx, str.rsa_pss.c
lea ebp, [rax - 1]
mov dword [rsp + 0x38], eax
movsxd rax, ebp
mov ecx, ebp
add rax, rdi
mov qword [rsp + 0x40], rax
call fcn.14006d260
test rax, rax
je 0x140177fa8
mov qword [rsp + 0x20], rbx
mov r8, qword [rsp + 0x40]
mov r9d, r15d
mov edx, ebp
mov rcx, rax
mov qword [rsp + 0x48], rax
call fcn.140142f10
mov r10, qword [rsp + 0x48]
test eax, eax
js 0x140177ef8
test ebp, ebp
jle 0x140177e50
mov eax, dword [rsp + 0x38]
lea rdx, [rdi + 0xf]
sub rdx, r10
sub eax, 2
cmp rdx, 0x1e
jbe 0x140178110
cmp eax, 0xe
jbe 0x140178110
mov edx, ebp
xor eax, eax
shr edx, 4
shl rdx, 4
nop
movdqu xmm0, xmmword [r10 + rax]
movdqu xmm1, xmmword [rdi + rax]
pxor xmm0, xmm1
movups xmmword [r10 + rax], xmm0
add rax, 0x10
cmp rax, rdx
jne 0x140177d00
mov eax, ebp
and eax, 0xfffffff0
test bpl, 0xf
je 0x140177e50
movsxd rdx, eax
movzx ecx, byte [rdi + rdx]
xor byte [r10 + rdx], cl
lea edx, [rax + 1]
cmp edx, ebp
jge 0x140177e50
movsxd rdx, edx
movzx ecx, byte [rdi + rdx]
xor byte [r10 + rdx], cl
lea edx, [rax + 2]
cmp ebp, edx
jle 0x140177e50
movsxd rdx, edx
movzx ecx, byte [rdi + rdx]
xor byte [r10 + rdx], cl
lea edx, [rax + 3]
cmp ebp, edx
jle 0x140177e50
movsxd rdx, edx
movzx ecx, byte [rdi + rdx]
xor byte [r10 + rdx], cl
lea edx, [rax + 4]
cmp ebp, edx
jle 0x140177e50
movsxd rdx, edx
movzx ecx, byte [rdi + rdx]
xor byte [r10 + rdx], cl
lea edx, [rax + 5]
cmp ebp, edx
jle 0x140177e50
movsxd rdx, edx
movzx ecx, byte [rdi + rdx]
xor byte [r10 + rdx], cl
lea edx, [rax + 6]
cmp ebp, edx
jle 0x140177e50
movsxd rdx, edx
movzx ecx, byte [rdi + rdx]
xor byte [r10 + rdx], cl
lea edx, [rax + 7]
cmp ebp, edx
jle 0x140177e50
movsxd rdx, edx
movzx ecx, byte [rdi + rdx]
xor byte [r10 + rdx], cl
lea edx, [rax + 8]
cmp ebp, edx
jle 0x140177e50
movsxd rdx, edx
movzx ecx, byte [rdi + rdx]
xor byte [r10 + rdx], cl
lea edx, [rax + 9]
cmp ebp, edx
jle 0x140177e50
movsxd rdx, edx
movzx ecx, byte [rdi + rdx]
xor byte [r10 + rdx], cl
lea edx, [rax + 0xa]
cmp ebp, edx
jle 0x140177e50
movsxd rdx, edx
movzx ecx, byte [rdi + rdx]
xor byte [r10 + rdx], cl
lea edx, [rax + 0xb]
cmp ebp, edx
jle 0x140177e50
movsxd rdx, edx
movzx ecx, byte [rdi + rdx]
xor byte [r10 + rdx], cl
lea edx, [rax + 0xc]
cmp ebp, edx
jle 0x140177e50
movsxd rdx, edx
movzx ecx, byte [rdi + rdx]
xor byte [r10 + rdx], cl
lea edx, [rax + 0xd]
cmp ebp, edx
jle 0x140177e50
movsxd rdx, edx
add eax, 0xe
movzx ecx, byte [rdi + rdx]
xor byte [r10 + rdx], cl
cmp ebp, eax
jle 0x140177e50
cdqe
movzx edx, byte [rdi + rax]
xor byte [r10 + rax], dl
nop
movzx r8d, byte [r10]
test esi, esi
je 0x140177e6c
mov ecx, 8
mov eax, 0xff
sub ecx, esi
sar eax, cl
and r8d, eax
mov byte [r10], r8b
test r8b, r8b
jne 0x140178131
mov eax, dword [rsp + 0x38]
cmp eax, 2
jle 0x1401780d8
lea edx, [rax - 3]
mov eax, 1
add rdx, 2
jmp 0x140177e9d
add rax, 1
cmp rax, rdx
je 0x1401780d8
movzx r8d, byte [r10 + rax]
mov ebx, eax
test r8b, r8b
je 0x140177e90
add ebx, 1
cmp r8b, 1
jne 0x1401780d8
mov eax, dword [rsp + 0x138]
test eax, eax
js 0x140177ed2
mov eax, ebp
sub eax, ebx
cmp eax, dword [rsp + 0x138]
jne 0x1401780a0
xor r8d, r8d
mov rdx, r12
mov rcx, r14
mov qword [rsp + 0x38], r10
call fcn.1400bbb80
mov r10, qword [rsp + 0x38]
test eax, eax
jne 0x140177fd8
nop word [rax + rax]
mov rcx, r10
call fcn.14006d560
jmp 0x140177c4f
mov r8d, 0x6d
mov edx, 0x95
mov ecx, 4
mov dword [rsp + 0x20], 0x7e
lea r9, str.rsa_pss.c
call fcn.1400ba710
jmp 0x140177c4f
mov r8d, 0x88
mov edx, 0x95
mov ecx, 4
mov dword [rsp + 0x20], 0x6f
lea r9, str.rsa_pss.c
call fcn.1400ba710
jmp 0x140177c4f
mov dword [rsp + 0x138], eax
jmp 0x140177bd4
mov dword [rsp + 0x20], 0x76
lea r9, str.rsa_pss.c
mov r8d, 0x85
xor r13d, r13d
mov edx, 0x95
mov ecx, 4
call fcn.1400ba710
jmp 0x140177c4f
mov r8d, 0x41
mov edx, 0x95
mov ecx, 4
mov dword [rsp + 0x20], 0x89
lea r9, str.rsa_pss.c
call fcn.1400ba710
jmp 0x140177c4f
mov r8d, 8
lea rdx, [0x1404cead0]
mov rcx, r14
call fcn.1400bbe20
mov r10, qword [rsp + 0x38]
test eax, eax
je 0x140177ef8
mov rdx, qword [rsp + 0x118]
movsxd rsi, r15d
mov rcx, r14
mov r8, rsi
call fcn.1400bbe20
mov r10, qword [rsp + 0x38]
test eax, eax
je 0x140177ef8
cmp ebp, ebx
je 0x14017804a
mov r11d, ebp
movsxd rdx, ebx
mov rcx, r14
mov qword [rsp + 0x38], r10
sub r11d, ebx
add rdx, r10
movsxd r8, r11d
call fcn.1400bbe20
mov r10, qword [rsp + 0x38]
test eax, eax
je 0x140177ef8
lea r12, [rsp + 0x80]
xor r8d, r8d
mov rcx, r14
mov qword [rsp + 0x38], r10
mov rdx, r12
call fcn.1400bbe30
mov r10, qword [rsp + 0x38]
test eax, eax
je 0x140177ef8
mov rdx, qword [rsp + 0x40]
mov r8, rsi
mov rcx, r12
mov qword [rsp + 0x38], r10
call sub.msvcrt.dll_memcmp
mov r10, qword [rsp + 0x38]
test eax, eax
jne 0x14017813b
mov r13d, 1
jmp 0x140177ef8
mov r8d, 0x88
mov edx, 0x95
mov ecx, 4
mov dword [rsp + 0x20], 0x98
lea r9, str.rsa_pss.c
mov qword [rsp + 0x38], r10
call fcn.1400ba710
mov r10, qword [rsp + 0x38]
jmp 0x140177ef8
mov r8d, 0x87
mov edx, 0x95
mov ecx, 4
mov dword [rsp + 0x20], 0x94
lea r9, str.rsa_pss.c
mov qword [rsp + 0x38], r10
call fcn.1400ba710
mov r10, qword [rsp + 0x38]
jmp 0x140177ef8
mov edx, eax
xor eax, eax
nop dword [rax]
movzx ecx, byte [rdi + rax]
xor byte [r10 + rax], cl
mov rcx, rax
add rax, 1
cmp rcx, rdx
jne 0x140178118
jmp 0x140177e50
mov ebx, 1
jmp 0x140177eac
mov r8d, 0x68
mov edx, 0x95
mov ecx, 4
mov dword [rsp + 0x20], 0xa6
lea r9, str.rsa_pss.c
call fcn.1400ba710
mov r10, qword [rsp + 0x38]
jmp 0x140177ef8