Function at 0x10003dff
Capabilities:
Encode data using xor

Disassembly:
jmp 0x10145270
mov eax, 0x18
call fcn.101aa6d0
cmp dword [esp + 0x20], 0
push esi
mov dword [esp + 8], 0
jle 0x10145590
mov esi, dword [esp + 0x2c]
test esi, esi
jle 0x10145590
push ebp
mov ebp, dword [esp + 0x34]
cmp esi, ebp
jg 0x1014556c
cmp ebp, 0xb
jl 0x1014556c
push ebx
push 0xb2
push str...crypto_rsa_rsa_pk1.c
push ebp
call sym.libcrypto_1_1.dll_CRYPTO_malloc
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x101452ec
push 0xb4
push str...crypto_rsa_rsa_pk1.c
push 0x41
push 0x71
push 4
call sym.libcrypto_1_1.dll_ERR_put_error
add esp, 0x14
or eax, 0xffffffff
pop ebx
pop ebp
pop esi
add esp, 0x18
ret
mov edx, dword [esp + 0x30]
add ebx, ebp
add edx, esi
push edi
mov dword [esp + 0x18], ebx
test ebp, ebp
jle 0x10145327
mov edi, ebp
nop
mov eax, esi
not eax
shr eax, 0x1f
lea ecx, [esi - 1]
shr ecx, 0x1f
and ecx, eax
dec ecx
mov eax, ecx
and eax, 1
sub edx, eax
sub esi, eax
mov al, byte [edx]
dec ebx
and al, cl
mov byte [ebx], al
dec edi
jne 0x10145300
mov dword [esp + 0x18], ebx
movzx eax, byte [ebx + 1]
movzx ecx, byte [ebx]
xor eax, 2
mov esi, 2
lea edx, [eax - 1]
not eax
shr eax, 0x1f
shr edx, 0x1f
and edx, eax
lea eax, [ecx - 1]
shr eax, 0x1f
not ecx
shr ecx, 0x1f
and eax, ecx
neg edx
neg eax
and edx, eax
xor edi, edi
mov dword [esp + 0x10], edx
cmp ebp, esi
jle 0x101453a4
movzx eax, byte [esi + ebx]
lea edx, [eax - 1]
not eax
shr eax, 0x1f
shr edx, 0x1f
and edx, eax
mov eax, edi
not eax
neg edx
and eax, edx
mov dword [esp + 0x1c], eax
not eax
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
and eax, dword [esp + 0x14]
and ecx, esi
or eax, ecx
inc esi
or edi, edx
mov dword [esp + 0x14], eax
cmp esi, ebp
jl 0x10145360
mov edx, dword [esp + 0x10]
jmp 0x101453a6
xor eax, eax
mov edi, dword [esp + 0x30]
mov esi, ebp
sub esi, eax
dec esi
mov ecx, edi
sub ecx, esi
xor ecx, esi
mov eax, esi
xor eax, edi
or ecx, eax
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x14]
xor ecx, edi
lea eax, [esi - 0xa]
or eax, esi
xor eax, esi
shr eax, 0x1f
shr ecx, 0x1f
dec eax
dec ecx
and ecx, eax
and edx, ecx
mov dword [esp + 0x10], edx
lea ecx, [ebp - 0xb]
mov edx, ecx
sub edx, edi
xor edx, edi
mov eax, ecx
xor eax, edi
or edx, eax
xor edx, ecx
shr edx, 0x1f
neg edx
mov dword [esp + 0x30], edx
not edx
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
lea ecx, [ebp - 0xb]
and edx, ecx
and eax, edi
or edx, eax
mov esi, 1
mov dword [esp + 0x30], edx
cmp ecx, esi
jle 0x1014548e
mov eax, ebp
sub eax, dword [esp + 0x1c]
add eax, 0xfffffff5
mov dword [esp + 0x24], eax
and eax, esi
mov edi, ebp
lea ecx, [eax - 1]
shr ecx, 0x1f
not eax
shr eax, 0x1f
and ecx, eax
sub edi, esi
dec ecx
cmp edi, 0xb
jle 0x1014547d
movzx ebp, cl
mov dword [esp + 0x20], ebp
lea eax, [ebx + 0xb]
mov ebx, dword [esp + 0x20]
not ebp
add edi, 0xfffffff5
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], ebp
mov ecx, dword [esp + 0x20]
mov dl, byte [eax + esi]
and dl, cl
mov ecx, dword [esp + 0x14]
and cl, byte [eax]
lea eax, [eax + 1]
or cl, dl
mov byte [eax - 1], cl
dec edi
jne 0x10145453
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x3c]
lea eax, [ebp - 0xb]
add esi, esi
cmp esi, eax
mov eax, dword [esp + 0x24]
jl 0x10145427
mov edx, dword [esp + 0x30]
xor esi, esi
test edx, edx
jle 0x10145513
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x1c]
shr eax, 0x1f
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
movzx eax, al
mov dword [esp + 0x20], eax
mov ebp, eax
lea eax, [ebx + 0xb]
mov ebx, dword [esp + 0x24]
neg edi
mov dword [esp + 0x14], eax
lea ecx, [ecx]
mov ecx, esi
shr ecx, 0x1f
mov edx, edi
shr edx, 0x1f
xor dl, bl
mov al, bl
xor al, cl
or dl, al
xor dl, cl
mov ecx, dword [esp + 0x14]
neg dl
movzx eax, dl
mov edx, dword [esp + 0x2c]
and eax, ebp
mov dword [esp + 0x24], eax
not eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x24]
mov cl, byte [ecx + esi]
and cl, al
mov eax, dword [esp + 0x20]
and al, byte [esi + edx]
inc esi
or al, cl
mov byte [esi + edx - 1], al
inc edi
cmp esi, dword [esp + 0x30]
jl 0x101454c0
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x3c]
push 0xfa
push str...crypto_rsa_rsa_pk1.c
push ebp
push ebx
call sym.libcrypto_1_1.dll_CRYPTO_clear_free
push 0xfb
push str...crypto_rsa_rsa_pk1.c
push 0x9f
push 0x71
push 4
call sym.libcrypto_1_1.dll_ERR_put_error
mov ebx, dword [esp + 0x34]
mov eax, ebx
and eax, 1
push eax
call fcn.100015f5
add esp, 0x28
mov dword [esp + 0x30], ebx
not ebx
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x30]
and eax, dword [esp + 0x1c]
pop edi
or eax, dword [esp + 0x20]
pop ebx
pop ebp
pop esi
add esp, 0x18
ret
push 0xae
push str...crypto_rsa_rsa_pk1.c
push 0x9f
push 0x71
push 4
call sym.libcrypto_1_1.dll_ERR_put_error
add esp, 0x14
or eax, 0xffffffff
pop ebp
pop esi
add esp, 0x18
ret
or eax, 0xffffffff
pop esi
add esp, 0x18
ret