Function at 0x4ee820
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
mov rsi, qword [rsp + 0xf0]
mov ebx, dword [rsp + 0xf8]
mov r14, rcx
mov rcx, r9
mov r13, rdx
mov r15, r8
mov rbp, r9
test rsi, rsi
cmove rsi, r9
call fcn.0049b340
test eax, eax
mov r12d, eax
js 0x4ee964
cmp ebx, 0xffffffff
je 0x4eeaa0
cmp ebx, 0xfffffffe
je 0x4ee980
jl 0x4ee940
mov rcx, qword [r14 + 0x18]
call fcn.004ab7a0
lea edi, [rax - 1]
mov rcx, r14
call fcn.004b2270
and edi, 7
mov r14d, eax
test edi, edi
je 0x4eeac5
lea eax, [r12 + rbx + 1]
cmp eax, r14d
jge 0x4eeae2
test ebx, ebx
jle 0x4ee9bc
lea rdx, str.rsa_pss.c
mov r8d, 0xf2
mov ecx, ebx
call fcn.00493db0
test rax, rax
je 0x4eeb10
mov edx, ebx
mov rcx, rax
mov qword [rsp + 0x38], rax
call fcn.00495770
test eax, eax
mov r10, qword [rsp + 0x38]
jle 0x4eea90
lea rax, [rsp + 0x50]
mov qword [rsp + 0x40], r10
mov rcx, rax
mov qword [rsp + 0x38], rax
call fcn.00499b70
mov rcx, qword [rsp + 0x38]
xor r8d, r8d
mov rdx, rbp
call fcn.00499e80
test eax, eax
mov r10, qword [rsp + 0x40]
jne 0x4eee0c
mov rcx, r10
mov dword [rsp + 0x38], eax
call fcn.00494240
mov eax, dword [rsp + 0x38]
jmp 0x4ee966
lea r9, str.rsa_pss.c
mov dword [rsp + 0x20], 0xdc
mov r8d, 0x88
mov edx, 0x94
mov ecx, 4
call fcn.00498ab0
xor eax, eax
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [r14 + 0x18]
call fcn.004ab7a0
lea edi, [rax - 1]
mov rcx, r14
call fcn.004b2270
and edi, 7
mov r14d, eax
test edi, edi
jne 0x4ee9ab
mov byte [r13], 0
sub r14d, 1
add r13, 1
mov ebx, r14d
sub ebx, r12d
sub ebx, 2
test ebx, ebx
jg 0x4ee8b8
lea rax, [rsp + 0x50]
mov rcx, rax
mov qword [rsp + 0x38], rax
call fcn.00499b70
mov rcx, qword [rsp + 0x38]
xor r8d, r8d
mov rdx, rbp
call fcn.00499e80
test eax, eax
je 0x4ee964
mov rcx, qword [rsp + 0x38]
lea rdx, [0x006b6f20]
mov r8d, 8
call fcn.0049a110
test eax, eax
je 0x4ee964
mov ebp, r14d
mov rcx, qword [rsp + 0x38]
movsxd r8, r12d
sub ebp, r12d
mov rdx, r15
sub ebp, 1
movsxd rax, ebp
add rax, r13
mov qword [rsp + 0x40], rax
call fcn.0049a110
test eax, eax
je 0x4ee966
xor r10d, r10d
test ebx, ebx
je 0x4eea52
mov rcx, qword [rsp + 0x38]
mov rdx, r10
movsxd r8, ebx
mov qword [rsp + 0x48], r10
call fcn.0049a110
test eax, eax
mov r10, qword [rsp + 0x48]
je 0x4eea76
mov rdx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
xor r8d, r8d
mov qword [rsp + 0x48], r10
call fcn.0049a270
test eax, eax
mov r10, qword [rsp + 0x48]
jne 0x4eeb3b
xor eax, eax
test r10, r10
jne 0x4ee925
jmp 0x4ee966
xor eax, eax
jmp 0x4ee925
mov rcx, qword [r14 + 0x18]
mov ebx, r12d
call fcn.004ab7a0
lea edi, [rax - 1]
mov rcx, r14
call fcn.004b2270
and edi, 7
mov r14d, eax
test edi, edi
jne 0x4ee8a2
lea eax, [r12 + rbx + 1]
sub r14d, 1
mov byte [r13], 0
xor edi, edi
add r13, 1
cmp eax, r14d
jl 0x4ee8b0
lea r9, str.rsa_pss.c
mov dword [rsp + 0x20], 0xed
mov r8d, 0x6e
mov edx, 0x94
mov ecx, 4
call fcn.00498ab0
xor eax, eax
jmp 0x4ee966
lea r9, str.rsa_pss.c
mov dword [rsp + 0x20], 0xf5
mov r8d, 0x41
mov edx, 0x94
mov ecx, 4
call fcn.00498ab0
xor eax, eax
jmp 0x4ee966
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x48], r10
call fcn.0049a810
mov r8, qword [rsp + 0x40]
mov qword [rsp + 0x20], rsi
mov r9d, r12d
mov edx, ebp
mov rcx, r13
call fcn.00533910
test eax, eax
mov r10, qword [rsp + 0x48]
jne 0x4eea76
mov r8d, r14d
sub r8d, ebx
sub r8d, r12d
movsxd r8, r8d
lea rdx, [r13 + r8 - 2]
xor byte [rdx], 1
test ebx, ebx
jle 0x4eed86
lea r9, [r8 - 1]
lea r8, [r13 + r8 + 0xf]
lea rcx, [rdx + 1]
cmp r10, r8
lea r11, [r13 + r9]
lea r8, [r10 + 0x10]
setae sil
cmp r11, r8
setae r8b
or sil, r8b
je 0x4eedaf
cmp ebx, 0x12
jbe 0x4eedaf
neg r11
lea esi, [rbx - 1]
mov r8, r11
and r8d, 0xf
lea r11d, [r8 + 0xf]
cmp esi, r11d
jb 0x4eed71
test r8d, r8d
je 0x4eed27
movzx eax, byte [r10]
lea rcx, [rdx + 2]
xor byte [rdx + 1], al
cmp r8d, 1
je 0x4eee02
movzx eax, byte [r10 + 1]
lea rcx, [rdx + 3]
xor byte [rdx + 2], al
cmp r8d, 2
je 0x4eedf8
movzx eax, byte [r10 + 2]
lea rcx, [rdx + 4]
xor byte [rdx + 3], al
cmp r8d, 3
je 0x4eedee
movzx eax, byte [r10 + 3]
lea rcx, [rdx + 5]
xor byte [rdx + 4], al
cmp r8d, 4
je 0x4eede4
movzx eax, byte [r10 + 4]
lea rcx, [rdx + 6]
xor byte [rdx + 5], al
cmp r8d, 5
je 0x4eedda
movzx eax, byte [r10 + 5]
lea rcx, [rdx + 7]
xor byte [rdx + 6], al
cmp r8d, 6
je 0x4eedd0
movzx eax, byte [r10 + 6]
lea rcx, [rdx + 8]
xor byte [rdx + 7], al
cmp r8d, 7
je 0x4eeeb6
movzx eax, byte [r10 + 7]
lea rcx, [rdx + 9]
xor byte [rdx + 8], al
cmp r8d, 8
je 0x4eeeac
movzx eax, byte [r10 + 8]
lea rcx, [rdx + 0xa]
xor byte [rdx + 9], al
cmp r8d, 9
je 0x4eee8e
movzx eax, byte [r10 + 9]
lea rcx, [rdx + 0xb]
xor byte [rdx + 0xa], al
cmp r8d, 0xa
je 0x4eee84
movzx eax, byte [r10 + 0xa]
lea rcx, [rdx + 0xc]
xor byte [rdx + 0xb], al
cmp r8d, 0xb
je 0x4eee7a
movzx eax, byte [r10 + 0xb]
lea rcx, [rdx + 0xd]
xor byte [rdx + 0xc], al
cmp r8d, 0xc
je 0x4eee70
movzx eax, byte [r10 + 0xc]
lea rcx, [rdx + 0xe]
xor byte [rdx + 0xd], al
cmp r8d, 0xd
je 0x4eeea2
movzx eax, byte [r10 + 0xd]
lea rcx, [rdx + 0xf]
xor byte [rdx + 0xe], al
cmp r8d, 0xf
jne 0x4eee98
movzx eax, byte [r10 + 0xe]
lea rcx, [rdx + 0x10]
xor byte [rdx + 0xf], al
mov eax, 0xf
mov ebp, ebx
mov r11d, r8d
xor edx, edx
sub ebp, r8d
add r9, r11
xor r8d, r8d
mov esi, ebp
add r9, r13
add r11, r10
shr esi, 4
movdqu xmm0, xmmword [r11 + rdx]
add r8d, 1
pxor xmm0, xmmword [r9 + rdx]
movaps xmmword [r9 + rdx], xmm0
add rdx, 0x10
cmp esi, r8d
ja 0x4eed42
mov edx, ebp
and edx, 0xfffffff0
mov r8d, edx
add eax, edx
add rcx, r8
cmp ebp, edx
je 0x4eed86
cdqe
sub rcx, rax
movzx edx, byte [r10 + rax]
xor byte [rcx + rax], dl
add rax, 1
cmp ebx, eax
jg 0x4eed76
test edi, edi
je 0x4eed9c
mov ecx, 8
mov eax, 0xff
sub ecx, edi
sar eax, cl
and byte [r13], al
movsxd r14, r14d
mov eax, 1
mov byte [r13 + r14 - 1], 0xbc
jmp 0x4eea78
lea ecx, [rbx - 1]
mov eax, 1
add rcx, 2
movzx r8d, byte [r10 + rax - 1]
xor byte [rdx + rax], r8b
add rax, 1
cmp rax, rcx
jne 0x4eedbb
jmp 0x4eed86
mov eax, 6
jmp 0x4eed27
mov eax, 5
jmp 0x4eed27
mov eax, 4
jmp 0x4eed27
mov eax, 3
jmp 0x4eed27
mov eax, 2
jmp 0x4eed27
mov eax, 1
jmp 0x4eed27
mov rcx, qword [rsp + 0x38]
lea rdx, [0x006b6f20]
mov r8d, 8
mov qword [rsp + 0x40], r10
call fcn.0049a110
test eax, eax
mov r10, qword [rsp + 0x40]
je 0x4ee925
mov ebp, r14d
mov rcx, qword [rsp + 0x38]
movsxd r8, r12d
sub ebp, r12d
mov rdx, r15
mov qword [rsp + 0x48], r10
sub ebp, 1
movsxd rax, ebp
add rax, r13
mov qword [rsp + 0x40], rax
call fcn.0049a110
test eax, eax
mov r10, qword [rsp + 0x48]
je 0x4ee925
jmp 0x4eea34
mov eax, 0xc
jmp 0x4eed27
mov eax, 0xb
jmp 0x4eed27
mov eax, 0xa
jmp 0x4eed27
mov eax, 9
jmp 0x4eed27
mov eax, 0xe
jmp 0x4eed27
mov eax, 0xd
jmp 0x4eed27
mov eax, 8
jmp 0x4eed27
mov eax, 7
jmp 0x4eed27