Function at 0x1400371bc
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xb0
mov qword [rbp + 0x27], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov rbx, rdx
mov rsi, rcx
lea r13, [0x14019b9a8]
mov rcx, r13
mov rax, qword [0x14019b9a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x7f], rax
mov rdx, qword [rbx]
lea rcx, [rbp + 0x77]
call fcn.1400187b8
nop
lea rdx, [rbp + 0x77]
mov rcx, rbx
call fcn.140022a60
mov rax, qword [rbp + 0x77]
movsxd rbx, dword [rax - 0x10]
cmp dword [rax - 8], 1
jle 0x14003723c
mov edx, dword [rax - 0x10]
lea rcx, [rbp + 0x77]
call fcn.1400194d4
mov rax, qword [rbp + 0x77]
mov rdx, rbx
test bl, 3
jne 0x14003776a
mov rcx, rbx
shr rcx, 2
lea rbx, [rcx + rcx*2]
cmp byte [rdx + rax - 1], 0x3d
jne 0x14003725d
dec rbx
cmp byte [rdx + rax - 2], 0x3d
jne 0x140037267
dec rbx
lea r15, [rbx + 1]
mov rcx, r15
call fcn.1400ba748
mov r14, rax
mov r8, r15
xor edx, edx
mov rcx, rax
call fcn.1400c0510
test r14, r14
jne 0x14003728d
jmp 0x14003776a
and qword [rbp + 0xf], 0
mov rcx, qword [rbp + 0x77]
movsxd r12, dword [rcx - 0x10]
cmp dword [rcx - 8], 1
jle 0x1400372b0
mov edx, dword [rcx - 0x10]
lea rcx, [rbp + 0x77]
call fcn.1400194d4
mov rcx, qword [rbp + 0x77]
mov rdx, r12
lea rax, [rbp + 0xf]
mov qword [rsp + 0x20], rax
mov r9, r15
mov r8, r14
call fcn.14001d0fc
test al, al
jne 0x1400372d4
or rbx, 0xffffffffffffffff
jmp 0x140037742
mov byte [rbx + r14], 0
mov rdx, r14
lea rcx, [rbp - 0x49]
call fcn.140002d94
nop
mov rcx, qword [rbp - 0x49]
or rbx, 0xffffffffffffffff
cmp dword [rcx - 0x10], 0
jl 0x140037314
lea rdx, str._BEGIN_RSA_PRIVATE_KEY_
call fcn.1400bbf1c
test rax, rax
je 0x140037314
sub rax, qword [rbp - 0x49]
sar rax, 1
cmp eax, ebx
je 0x140037314
mov byte [rsi + 0x34], 1
mov rdx, rbx
inc rdx
cmp byte [r14 + rdx], 0
jne 0x140037317
mov rcx, r14
call fcn.14005ec10
mov r10, rax
mov qword [rsi + 0x20], rax
test rax, rax
jne 0x140037404
lea rdx, str.BIO_new_mem_buf_
lea rcx, [rbp - 0x31]
call fcn.1400020f8
nop
mov rcx, r13
mov rax, qword [0x14019b9a8]
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rbp - 0x11], rsi
lea r8, [rbp - 0x31]
lea rdx, [rbp - 0x11]
lea rcx, [rbp - 0x21]
call fcn.14001da0c
nop
mov rdx, rax
lea rcx, [rbp + 0x7f]
call fcn.1400021c4
nop
mov rdx, qword [rbp - 0x21]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x14003739d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rdx, [rsi - 0x18]
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x1400373b8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x31]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x1400373d6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [rbp + 0x7f]
call fcn.140038218
nop
mov rdx, qword [rbp - 0x49]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x1400373ff
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x140037742
cmp byte [rsi + 0x34], 0
je 0x1400374f6
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rax
call fcn.14005f260
mov qword [rsi + 0x28], rax
test rax, rax
jne 0x140037643
lea rdx, str.PEM_read_bio_RSAPrivateKey_
lea rcx, [rbp - 0x41]
call fcn.1400020f8
nop
mov rcx, r13
mov rax, qword [0x14019b9a8]
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rbp - 1], rsi
lea r8, [rbp - 0x41]
lea rdx, [rbp - 1]
lea rcx, [rbp + 0x1f]
call fcn.14001da0c
nop
mov rdx, rax
lea rcx, [rbp + 0x7f]
call fcn.1400021c4
nop
mov rdx, qword [rbp + 0x1f]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x14003748f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rdx, [rsi - 0x18]
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x1400374aa
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x41]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x1400374c8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [rbp + 0x7f]
call fcn.140038218
nop
mov rdx, qword [rbp - 0x49]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x1400374f1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x140037742
mov r8d, dword [0x1401a3d80]
lea ecx, [r8 + 1]
imul ecx, r8d
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*8]
sub ecx, eax
cmp ecx, 5
jne 0x14003755b
xor edx, edx
mov r9d, edx
mov r11d, 8
mov ecx, r9d
and ecx, 1
dec ecx
not ecx
and ecx, r8d
mov eax, r9d
sar eax, 1
mov r9d, ecx
xor r9d, eax
dec r11
jne 0x14003752a
add r8d, r9d
inc edx
cmp edx, 0x100
jl 0x140037521
mov dword [0x1401a3d80], r8d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, r10
call fcn.14005f290
mov qword [rsi + 0x28], rax
test rax, rax
jne 0x140037643
lea rdx, str.PEM_read_bio_RSAPublicKey_
lea rcx, [rbp - 0x39]
call fcn.1400020f8
nop
mov rcx, r13
mov rax, qword [0x14019b9a8]
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rbp - 0x19], rsi
lea r8, [rbp - 0x39]
lea rdx, [rbp - 0x19]
lea rcx, [rbp - 9]
call fcn.14001da0c
nop
mov rdx, rax
lea rcx, [rbp + 0x7f]
call fcn.1400021c4
nop
mov rdx, qword [rbp - 9]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x1400375dc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rdx, [rsi - 0x18]
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x1400375f7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x39]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x140037615
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [rbp + 0x7f]
call fcn.140038218
nop
mov rdx, qword [rbp - 0x49]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x14003763e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x140037742
mov rcx, qword [rsi + 0x28]
call fcn.14005c3c0
mov dword [rsi + 0x30], eax
test eax, eax
jg 0x14003771f
lea rdx, str.RSA_size_
lea rcx, [rbp - 0x29]
call fcn.1400020f8
nop
mov rcx, r13
mov rax, qword [0x14019b9a8]
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rbp + 7], rsi
lea r8, [rbp - 0x29]
lea rdx, [rbp + 7]
lea rcx, [rbp + 0x17]
call fcn.14001da0c
nop
mov rdx, rax
lea rcx, [rbp + 0x7f]
call fcn.1400021c4
nop
mov rdx, qword [rbp + 0x17]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x1400376bb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rdx, [rsi - 0x18]
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x1400376d6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x29]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x1400376f4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [rbp + 0x7f]
call fcn.140038218
nop
mov rdx, qword [rbp - 0x49]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x14003771d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x140037742
mov byte [rsi + 0x18], 1
mov rdx, qword [rbp - 0x49]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x140037742
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x77]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x140037760
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, r14
call fcn.1400bc20c
jmp 0x14003778d
mov rdx, qword [rbp + 0x77]
or rbx, 0xffffffffffffffff
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x14003778d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x7f]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x1400377ab
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret