Function at 0x4d6be0
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 qword [rcx], 0
mov r12, rcx
lea rcx, [0x007efae8]
mov rbx, rdx
mov r13, r8
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x70], 0
call fcn.004e30c0
mov r14d, dword [0x007efae0]
test r14d, r14d
je 0x4d7040
lea rcx, [0x007efae8]
call fcn.004e3130
lea rax, [rsp + 0x70]
lea r9, [rsp + 0x60]
xor r8d, r8d
mov edx, 1
mov rcx, r13
mov qword [rsp + 0x20], rax
call fcn.004d3940
test eax, eax
mov esi, eax
je 0x4d6d80
xor r15d, r15d
xor edi, edi
xor r14d, r14d
xor ebx, ebx
mov rcx, r14
call fcn.004c8620
mov rbp, qword [rsp + 0x60]
test rbp, rbp
je 0x4d6cc4
mov rcx, qword [rbp]
test rcx, rcx
je 0x4d70c4
nop dword [rax + rax]
call fcn.004cbe60
add rbp, 8
mov qword [rbp - 8], 0
mov rcx, qword [rbp]
test rcx, rcx
jne 0x4d6ca0
mov rcx, qword [rsp + 0x60]
call fcn.004c8620
mov rcx, qword [rsp + 0x68]
call fcn.004cbe60
test rbx, rbx
je 0x4d6d02
mov rcx, qword [rbx]
mov rbp, rbx
test rcx, rcx
je 0x4d6cfa
nop
call fcn.004cbe60
add rbp, 8
mov qword [rbp - 8], 0
mov rcx, qword [rbp]
test rcx, rcx
jne 0x4d6ce0
mov rcx, rbx
call fcn.004c8620
cmp qword [rsp + 0x70], 0
je 0x4d6d70
lea rcx, [0x007efae8]
call fcn.004e30c0
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x4d6d25
call fcn.004fbde0
test rdi, rdi
je 0x4d6d32
mov rcx, rdi
call fcn.004fbde0
lea rcx, [0x007efae8]
call fcn.004e3130
mov rcx, r15
call fcn.004c8620
xor eax, eax
test esi, esi
je 0x4d6d54
movzx eax, si
or eax, 0x20000000
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test rdi, rdi
jne 0x4d6d0a
jmp 0x4d6d3e
lea rdx, [0x0076632f]
xor r8d, r8d
mov rcx, rbx
call fcn.004ca7b0
test rax, rax
mov r14, rax
je 0x4d7054
mov edx, 1
mov rcx, rax
call fcn.004ca960
test rax, rax
mov rbp, rax
je 0x4d70cc
xor edx, edx
mov rcx, rax
call fcn.004cab20
test rax, rax
mov rsi, rax
mov qword [rsp + 0x38], rax
je 0x4d7351
lea rdi, str.flags
mov ecx, 6
repe cmpsb byte [rsi], byte [rdi]
je 0x4d70df
mov qword [rsp + 0x48], 0
xor r15d, r15d
mov dword [rsp + 0x58], 2
mov dword [rsp + 0x40], 4
mov dword [rsp + 0x5c], 0
mov dword [rsp + 0x50], 0
lea rcx, [0x007efae8]
call fcn.004e30c0
mov rdx, qword [rsp + 0x38]
mov rcx, qword [0x007efaf0]
lea r8, [0x004d33f0]
call fcn.004fbd80
lea rcx, [0x007efae8]
mov rdi, rax
call fcn.004e3130
test rdi, rdi
je 0x4d7388
mov rax, qword [rdi + 0x10]
mov rsi, qword [rax + 0x20]
mov rcx, rsi
call sub.msvcrt.dll_strlen
lea rcx, [rax + 1]
mov edx, 8
call fcn.004c8700
test rax, rax
mov rbx, rax
je 0x4d74fc
mov rdx, rsi
xor r9d, r9d
mov r8, rax
mov rcx, r14
call fcn.004d36c0
mov esi, eax
mov rcx, r14
call fcn.004c90e0
mov rcx, rbp
call fcn.004c90e0
mov rcx, qword [rsp + 0x38]
call fcn.004c8620
test esi, esi
jne 0x4d7085
mov rax, qword [rsp + 0x70]
xor r14d, r14d
mov esi, 0x46
mov ebp, dword [rax + 0x28]
cmp ebp, dword [rdi + 0x28]
jne 0x4d6c79
mov ecx, 1
mov rsi, qword [rsp + 0x60]
mov qword [rsp + 0x68], 0
call fcn.004c8b60
test eax, eax
jne 0x4d73ab
lea rcx, [0x007efae8]
call fcn.004e30c0
mov rcx, qword [0x007efaf0]
mov edx, ebp
call fcn.004fbd50
test rax, rax
mov r14, rax
je 0x4d7392
mov ecx, dword [rsp + 0x50]
mov rax, qword [rax + 0x10]
mov r9, rsi
lea rdx, [rsp + 0x68]
mov r8, rbx
mov dword [rsp + 0x20], ecx
mov ecx, ebp
call qword [rax + 0x58]
mov rcx, r14
mov esi, eax
call fcn.004fbde0
lea rcx, [0x007efae8]
call fcn.004e3130
test esi, esi
jne 0x4d73a3
mov ecx, 1
call fcn.004c8b60
test eax, eax
jne 0x4d74d6
mov eax, dword [rsp + 0x40]
cmp eax, 1
je 0x4d7415
cmp eax, 2
jne 0x4d74a2
mov rcx, r13
mov rbp, qword [rsp + 0x68]
call fcn.004d6530
lea r13d, [rax + 7]
mov qword [rsp + 0x78], 0
shr r13d, 3
cmp qword [rsp + 0x48], 0
je 0x4d6f9c
test r15, r15
mov r14, r15
jne 0x4d6fac
lea r14, [0x007661ba]
mov qword [rsp + 0x48], 0
mov ecx, dword [rsp + 0x58]
call fcn.004da710
mov esi, eax
mov rcx, rsi
call fcn.004c8550
test rax, rax
mov qword [rsp + 0x38], rax
je 0x4d78dc
mov r9, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x38]
mov r8, r14
mov ecx, dword [rsp + 0x58]
call fcn.004da380
lea rcx, [rsp + 0x78]
xor edx, edx
mov r9, r13
mov r8, rbp
call fcn.004d3e70
test eax, eax
jne 0x4d7015
lea rbp, [rsi + 1]
lea rax, [rbp + rbp]
cmp r13, rax
jae 0x4d7655
mov rcx, qword [rsp + 0x78]
call fcn.004c8620
mov rcx, qword [rsp + 0x38]
call fcn.004c8620
mov rcx, qword [rsp + 0x68]
xor r14d, r14d
mov esi, 0x9b
call fcn.004cbe60
mov qword [rsp + 0x68], 0
jmp 0x4d6c79
call fcn.004d30b0
mov dword [0x007efae0], 1
jmp 0x4d6c3a
xor ebp, ebp
xor r15d, r15d
mov qword [rsp + 0x38], 0
mov esi, 0x41
mov rcx, r14
xor ebx, ebx
xor edi, edi
call fcn.004c90e0
mov rcx, rbp
call fcn.004c90e0
mov rcx, qword [rsp + 0x38]
call fcn.004c8620
lea rcx, [0x007efae8]
xor r14d, r14d
call fcn.004e30c0
mov rcx, rdi
xor edi, edi
call fcn.004fbde0
lea rcx, [0x007efae8]
call fcn.004e3130
mov rcx, rbx
xor ebx, ebx
call fcn.004c8620
mov rcx, r15
xor r15d, r15d
call fcn.004c8620
jmp 0x4d6c79
mov rcx, rbp
jmp 0x4d6cbf
xor r15d, r15d
mov qword [rsp + 0x38], 0
mov esi, 0x44
jmp 0x4d7067
mov rcx, rbp
call fcn.004ca8f0
lea ebx, [rax - 1]
test ebx, ebx
jle 0x4d7569
mov eax, 4
lea rsi, [rsp + 0x78]
mov qword [rsp + 0x48], r13
xor r15d, r15d
mov r13, r12
mov r12d, eax
nop word [rax + rax]
mov r8, rsi
mov edx, ebx
mov rcx, rbp
call fcn.004cab10
test rax, rax
mov rdi, rax
je 0x4d71b0
mov rax, qword [rsp + 0x78]
cmp rax, 3
je 0x4d7180
cmp rax, 5
je 0x4d72b4
cmp rax, 4
jne 0x4d731f
lea rdx, str.oaep
mov r8d, 4
mov rcx, rdi
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4d7170
cmp r12d, 4
je 0x4d737d
nop dword [rax + rax]
xor r15d, r15d
mov esi, 0x48
jmp 0x4d7067
lea rdx, [0x007661c6]
mov r8d, 3
mov rcx, rdi
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4d72e6
cmp r12d, 4
jne 0x4d7170
xor r12d, r12d
nop word cs:[rax + rax]
sub ebx, 1
jne 0x4d7110
mov edi, r12d
mov rcx, rbp
mov dword [rsp + 0x40], r12d
mov dword [rsp + 0x50], r15d
mov r12, r13
mov r13, qword [rsp + 0x48]
call fcn.004c90e0
cmp edi, 2
je 0x4d7508
mov qword [rsp + 0x48], 0
xor r15d, r15d
mov dword [rsp + 0x58], 2
mov ebx, 2
lea rsi, [rsp + 0x78]
jmp 0x4d7231
cmp r9, 5
je 0x4d735e
cmp r9, 0xf
jne 0x4d7278
lea rdx, str.random_override
mov r8d, 0xf
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4d7278
mov rcx, rbp
add ebx, 1
call fcn.004c90e0
mov edx, ebx
mov rcx, r14
call fcn.004ca960
test rax, rax
mov rbp, rax
je 0x4d70d8
xor edx, edx
mov rcx, rbp
mov r8, rsi
call fcn.004cab10
mov r9, qword [rsp + 0x78]
mov rcx, rax
cmp r9, 9
jne 0x4d7200
lea rdx, str.hash_algo
mov r8d, 9
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4d7226
mov rcx, qword [rsp + 0x38]
call fcn.004c8620
xor edx, edx
mov rcx, rbp
call fcn.004cab20
test rax, rax
mov qword [rsp + 0x38], rax
je 0x4d7354
mov rcx, r14
mov r14, rbp
xor ebp, ebp
call fcn.004c90e0
mov dword [rsp + 0x5c], 1
jmp 0x4d6e12
lea rdx, str.pkcs1
mov r8d, 5
mov rcx, rdi
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4d7170
cmp r12d, 4
jne 0x4d7170
mov r12d, 1
jmp 0x4d71b0
lea rdx, [0x007661d5]
mov r8d, 3
mov rcx, rdi
mov dword [rsp + 0x40], r12d
xor r15d, r15d
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4d7173
xor esi, esi
cmp dword [rsp + 0x40], 4
setne sil
lea esi, [rsi + rsi + 0x46]
jmp 0x4d7067
cmp rax, 0xb
jne 0x4d7170
lea rdx, str.no_blinding
mov r8d, 0xb
mov rcx, rdi
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4d7170
mov r15d, 1
jmp 0x4d71b0
xor r15d, r15d
mov esi, 0x41
jmp 0x4d7067
lea rdx, str.label
mov r8d, 5
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4d7278
jmp 0x4d7226
mov r12d, 2
jmp 0x4d71b0
mov esi, 4
jmp 0x4d7067
lea rcx, [0x007efae8]
mov esi, 4
call fcn.004e3130
xor r14d, r14d
jmp 0x4d6c79
call fcn.004dade0
test eax, eax
jne 0x4d6ee6
lea rcx, str.pubkey_decrypt:_algo_d_n
mov edx, ebp
xor r14d, r14d
call fcn.004cbad0
jmp 0x4d73df
mov rdx, qword [rsi + r14*8]
lea rcx, str.__skey:
add r14, 1
call fcn.004cc8c0
mov ecx, ebp
call fcn.004d3580
cmp eax, r14d
jg 0x4d73cb
xor r14d, r14d
jmp 0x4d7404
mov rdx, qword [rbx + r14*8]
lea rcx, str.__data:
add r14, 1
call fcn.004cc8c0
mov ecx, ebp
call fcn.004d34e0
cmp eax, r14d
jg 0x4d73f0
jmp 0x4d6ee6
mov rcx, r13
mov rbp, qword [rsp + 0x68]
call fcn.004d6530
add eax, 7
shr eax, 3
mov esi, eax
mov rcx, rsi
call fcn.004c8580
test rax, rax
mov r14, rax
je 0x4d78dc
lea r9, [rsp + 0x78]
mov r8, rsi
mov qword [rsp + 0x20], rbp
mov rdx, rax
mov ecx, 5
call fcn.004cd030
test eax, eax
mov esi, eax
jne 0x4d760b
mov rdx, qword [rsp + 0x78]
cmp rdx, 3
jbe 0x4d7495
cmp byte [r14], 1
sbb rax, rax
not rax
add rax, 2
cmp byte [r14], 1
mov qword [rsp + 0x78], rax
sbb rcx, rcx
and ecx, 1
cmp byte [r14 + rcx], 2
je 0x4d7855
mov rcx, r14
call fcn.004c8620
jmp 0x4d701f
mov r13d, dword [rsp + 0x5c]
lea rax, str._value__m_
mov r9, qword [rsp + 0x68]
lea r8, [0x0076632c]
mov rcx, r12
test r13d, r13d
cmovne r8, rax
xor edx, edx
xor r14d, r14d
call fcn.004cad40
movzx esi, ax
jmp 0x4d6c79
call fcn.004dade0
test eax, eax
nop dword [rax]
jne 0x4d6f58
mov rdx, qword [rsp + 0x68]
lea rcx, str._plain:
call fcn.004cc8c0
jmp 0x4d6f58
call fcn.00512400
mov esi, eax
jmp 0x4d6e8b
lea rdx, str.hash_algo
xor r8d, r8d
mov rcx, r14
call fcn.004ca7b0
test rax, rax
mov rbp, rax
je 0x4d78e8
mov r8, rsi
mov edx, 1
mov rcx, rax
call fcn.004cab10
test rax, rax
je 0x4d77d4
mov rdx, qword [rsp + 0x78]
mov rcx, rax
call fcn.004d3db0
test eax, eax
mov dword [rsp + 0x58], eax
jne 0x4d759a
mov esi, 5
mov rcx, rbp
xor r15d, r15d
call fcn.004c90e0
jmp 0x4d7067
mov rcx, rbp
xor r15d, r15d
call fcn.004c90e0
mov dword [rsp + 0x40], 4
mov dword [rsp + 0x50], 0
mov qword [rsp + 0x48], 0
mov dword [rsp + 0x58], 2
jmp 0x4d71f3
mov rcx, rbp
call fcn.004c90e0
lea rdx, str.label
xor r8d, r8d
mov rcx, r14
call fcn.004ca7b0
test rax, rax
mov rbp, rax
je 0x4d77f3
mov r8, rsi
mov edx, 1
mov rcx, rax
call fcn.004cab10
test rax, rax
mov rbx, rax
je 0x4d77de
mov rcx, qword [rsp + 0x78]
xor r15d, r15d
mov qword [rsp + 0x48], 0
test rcx, rcx
jne 0x4d77aa
mov rcx, rbp
call fcn.004c90e0
mov dword [rsp + 0x40], 2
jmp 0x4d71f3
mov rcx, r14
movzx esi, si
call fcn.004c8620
mov rcx, qword [rsp + 0x68]
xor r14d, r14d
call fcn.004cbe60
test esi, esi
mov qword [rsp + 0x68], 0
jne 0x4d6c79
xor r9d, r9d
lea r8, str._value__b_
mov qword [rsp + 0x20], r14
xor edx, edx
mov rcx, r12
call fcn.004cad40
movzx esi, ax
jmp 0x4d6c79
sub r13, 1
mov rcx, r13
call fcn.004c8580
test rax, rax
mov r14, rax
je 0x4d780c
mov r10, qword [rsp + 0x78]
lea rax, [rax + rsi]
mov edx, dword [rsp + 0x58]
sub r13, rsi
mov rcx, r14
mov qword [rsp + 0x40], rax
mov r9, r13
lea rax, [r10 + rbp]
mov dword [rsp + 0x20], edx
mov rdx, rsi
mov qword [rsp + 0x50], r10
mov r8, rax
mov qword [rsp + 0x48], rax
call fcn.004d3820
xor r11d, r11d
test eax, eax
mov r10, qword [rsp + 0x50]
setne r11b
xor eax, eax
test rsi, rsi
je 0x4d76cd
movzx edx, byte [r10 + rax + 1]
xor byte [r14 + rax], dl
add rax, 1
cmp rsi, rax
ja 0x4d76ba
mov eax, dword [rsp + 0x58]
mov rcx, qword [rsp + 0x40]
mov r9, rsi
mov r8, r14
mov rdx, r13
mov dword [rsp + 0x50], r11d
mov dword [rsp + 0x20], eax
call fcn.004d3820
mov r11d, dword [rsp + 0x50]
test eax, eax
mov eax, 1
cmovne r11d, eax
xor eax, eax
test r13, r13
je 0x4d771f
mov rdx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
movzx ecx, byte [r8 + rax]
xor byte [rdx + rax], cl
add rax, 1
cmp rax, r13
jne 0x4d770e
mov rdx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
mov r8, rsi
mov dword [rsp + 0x48], r11d
call sub.msvcrt.dll_memcmp
mov r11d, dword [rsp + 0x48]
test eax, eax
mov eax, 1
cmovne r11d, eax
cmp rsi, r13
jae 0x4d7777
mov rax, qword [rsp + 0x40]
cmp byte [rax + rsi], 1
jne 0x4d776f
jmp 0x4d7777
mov rax, qword [rsp + 0x40]
cmp byte [rax + rbp], 1
je 0x4d7777
add rbp, 1
cmp r13, rbp
mov rsi, rbp
ja 0x4d7760
cmp r13, rsi
mov eax, 1
cmove r11d, eax
mov rax, qword [rsp + 0x78]
cmp byte [rax], 0
je 0x4d78f5
mov rcx, qword [rsp + 0x38]
call fcn.004c8620
mov rcx, qword [rsp + 0x78]
call fcn.004c8620
jmp 0x4d7495
call fcn.004c8550
test rax, rax
mov r15, rax
je 0x4d782c
mov rax, qword [rsp + 0x78]
mov rdx, rbx
mov rcx, r15
mov r8, rax
mov qword [rsp + 0x48], rax
call sub.msvcrt.dll_memcpy
jmp 0x4d75f6
mov esi, 0x44
jmp 0x4d7559
mov rcx, rbp
xor r15d, r15d
mov esi, 0x44
call fcn.004c90e0
jmp 0x4d7067
mov dword [rsp + 0x40], 2
mov qword [rsp + 0x48], 0
xor r15d, r15d
jmp 0x4d71f3
call fcn.00512400
mov rcx, qword [rsp + 0x78]
mov esi, eax
call fcn.004c8620
mov rcx, qword [rsp + 0x38]
call fcn.004c8620
jmp 0x4d7616
call fcn.00512400
mov rcx, rbp
mov esi, eax
call fcn.004c90e0
test esi, esi
jne 0x4d7067
mov dword [rsp + 0x40], 2
mov qword [rsp + 0x48], r15
jmp 0x4d71f3
cmp byte [r14 + rax], 0
mov rcx, rax
jne 0x4d786c
jmp 0x4d787a
cmp byte [r14 + rcx + 1], 0
je 0x4d7875
mov rcx, rax
lea rax, [rcx + 1]
cmp rdx, rax
ja 0x4d7861
mov qword [rsp + 0x78], rax
add rax, 1
cmp rdx, rax
jbe 0x4d7495
sub rdx, rax
mov rcx, r14
mov qword [rsp + 0x78], rax
mov rsi, rdx
lea rdx, [r14 + rax]
mov r8, rsi
call sub.msvcrt.dll_memmove
mov ecx, 1
call fcn.004c8b60
test eax, eax
je 0x4d78c1
lea rcx, str.value_extracted_from_PKCS1_block_type_2_encoded_data:
mov r8, rsi
mov rdx, r14
call fcn.004cbb40
mov rcx, qword [rsp + 0x68]
call fcn.004cbe60
mov qword [rsp + 0x68], 0
mov r9d, esi
jmp 0x4d7637
call fcn.00512400
mov esi, eax
jmp 0x4d7616
mov dword [rsp + 0x58], 2
jmp 0x4d75a2
mov rcx, qword [rsp + 0x38]
mov dword [rsp + 0x48], r11d
call fcn.004c8620
mov rcx, qword [rsp + 0x78]
call fcn.004c8620
mov r11d, dword [rsp + 0x48]
test r11d, r11d
jne 0x4d7495
mov rdx, qword [rsp + 0x40]
add rsi, 1
mov rcx, r14
sub r13, rsi
mov r8, r13
add rdx, rsi
call sub.msvcrt.dll_memmove
mov ecx, 1
call fcn.004c8b60
test eax, eax
je 0x4d7956
lea rcx, str.value_extracted_from_OAEP_encoded_data:
mov r8, r13
mov rdx, r14
call fcn.004cbb40
mov rcx, qword [rsp + 0x68]
call fcn.004cbe60
mov qword [rsp + 0x68], 0
mov r9d, r13d
jmp 0x4d7637