Function at 0x10013640
Capabilities:
Encode data using xor

Disassembly:
jmp 0x101282a0
mov eax, 0xc0
call fcn.100011c0
mov eax, dword [0x102293a4]
xor eax, esp
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xc4]
push ebx
push ebp
mov ebp, dword [esp + 0xec]
xor ebx, ebx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xe0]
push esi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x28], 0
mov dword [esp + 0x20], ebx
push edi
mov edi, dword [esp + 0xe4]
mov dword [esp + 0x40], edi
test eax, eax
jne 0x10128312
call sym.libcrypto_1_1.dll_EVP_sha1
mov dword [esp + 0x1c], eax
test ebp, ebp
push eax
cmove ebp, eax
mov dword [esp + 0x14], ebp
call sym.libcrypto_1_1.dll_EVP_MD_size
mov ebp, eax
add esp, 4
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x3c], ebp
test eax, eax
jle 0x101288ad
mov esi, dword [esp + 0xe0]
test esi, esi
jle 0x101288ad
cmp edi, esi
jl 0x10128892
lea eax, [ebp*2 + 2]
cmp edi, eax
jl 0x10128892
push 0x9d
sub edi, ebp
dec edi
push str.crypto_rsa_rsa_oaep.c
push edi
lfence
mov dword [esp + 0x24], edi
call sym.libcrypto_1_1.dll_CRYPTO_malloc
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x101283a4
push 0x9f
push str.crypto_rsa_rsa_oaep.c
push 0x41
push 0x99
push 4
call sym.libcrypto_1_1.dll_ERR_put_error
add esp, 0x14
jmp 0x1012883e
push 0xa3
push str.crypto_rsa_rsa_oaep.c
push dword [esp + 0x48]
call sym.libcrypto_1_1.dll_CRYPTO_malloc
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x24], ecx
test ecx, ecx
jne 0x101283cb
push 0xa6
jmp 0x10128389
mov edx, dword [esp + 0xdc]
mov eax, dword [esp + 0x40]
add edx, esi
add ecx, eax
mov dword [esp + 0x24], ecx
test eax, eax
jle 0x10128415
mov ebx, eax
mov edi, ecx
mov eax, esi
lea ecx, [esi - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
dec edi
and ecx, eax
dec ecx
mov eax, ecx
and eax, 1
sub edx, eax
sub esi, eax
and cl, byte [edx]
mov byte [edi], cl
sub ebx, 1
jne 0x101283e6
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
push dword [esp + 0x10]
movzx ebx, byte [ecx]
lea eax, [ecx + 1]
add eax, ebp
lea esi, [ecx + 1]
push edi
push eax
lea ebx, [ebx - 1]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x58]
shr ebx, 0x1f
push ebp
push eax
neg ebx
call sym.libcrypto_1_1.dll_PKCS1_MGF1
add esp, 0x14
test eax, eax
jne 0x1012883e
xor edx, edx
test ebp, ebp
jle 0x101284f0
cmp ebp, 0x40
jb 0x101284d2
lea eax, [ebp - 1]
add eax, esi
lea edi, [esp + 0x4c]
lea ecx, [esp + ebp + 0x4b]
cmp edi, eax
ja 0x1012846c
cmp ecx, esi
jae 0x101284d2
mov eax, ebp
and eax, 0x8000003f
jns 0x1012847a
dec eax
or eax, 0xffffffc0
inc eax
mov ecx, ebp
sub ecx, eax
nop
movups xmm0, xmmword [esp + edx + 0x4c]
movups xmm1, xmmword [esi + edx]
pxor xmm1, xmm0
movups xmmword [esp + edx + 0x4c], xmm1
movups xmm0, xmmword [esp + edx + 0x5c]
movups xmm1, xmmword [esi + edx + 0x10]
pxor xmm1, xmm0
movups xmmword [esp + edx + 0x5c], xmm1
movups xmm0, xmmword [esp + edx + 0x6c]
movups xmm1, xmmword [esi + edx + 0x20]
pxor xmm1, xmm0
movups xmmword [esp + edx + 0x6c], xmm1
movups xmm0, xmmword [esp + edx + 0x7c]
movups xmm1, xmmword [esi + edx + 0x30]
pxor xmm1, xmm0
movups xmmword [esp + edx + 0x7c], xmm1
add edx, 0x40
cmp edx, ecx
jl 0x10128480
cmp edx, ebp
jge 0x101284f0
lea eax, [esp + 0x4c]
sub esi, eax
nop dword [eax]
lea ecx, [esp + 0x4c]
add ecx, edx
inc edx
mov al, byte [ecx + esi]
xor byte [ecx], al
cmp edx, ebp
jl 0x101284e0
push dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x50]
mov edi, dword [esp + 0x18]
push ebp
push eax
push esi
push edi
call sym.libcrypto_1_1.dll_PKCS1_MGF1
add esp, 0x14
test eax, eax
jne 0x1012883a
xor edx, edx
test esi, esi
jle 0x101285e6
mov ecx, edi
mov edi, dword [esp + 0x28]
cmp esi, 0x40
jb 0x101285c3
lea eax, [esi - 1]
add eax, edi
cmp ecx, eax
ja 0x10128543
lea eax, [esi - 1]
add eax, ecx
cmp eax, edi
jae 0x101285c3
mov eax, esi
and eax, 0x8000003f
jns 0x10128551
dec eax
or eax, 0xffffffc0
inc eax
mov dword [esp + 0x10], esi
mov ebp, edi
sub dword [esp + 0x10], eax
sub ebp, ecx
mov dword [esp + 0x28], ebp
mov eax, ecx
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x28]
nop dword [eax + eax]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x40]
movups xmm1, xmmword [esi + eax - 0x40]
pxor xmm1, xmm0
movups xmmword [eax - 0x40], xmm1
movups xmm0, xmmword [eax - 0x30]
movups xmm1, xmmword [edi + edx + 0x10]
pxor xmm1, xmm0
movups xmmword [eax - 0x30], xmm1
movups xmm0, xmmword [eax - 0x20]
movups xmm1, xmmword [edi + edx + 0x20]
pxor xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
movups xmm0, xmmword [eax - 0x10]
movups xmm1, xmmword [edi + edx + 0x30]
add edx, 0x40
pxor xmm1, xmm0
movups xmmword [eax - 0x10], xmm1
cmp edx, dword [esp + 0x10]
jl 0x10128570
mov esi, dword [esp + 0x18]
cmp edx, esi
jge 0x101285e2
sub edi, dword [esp + 0x14]
add ecx, edx
sub esi, edx
nop
mov al, byte [ecx + edi]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
sub esi, 1
jne 0x101285d0
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
push 0
push dword [esp + 0x20]
lea eax, [esp + 0x94]
push 0
push eax
push dword [esp + 0xfc]
push dword [esp + 0x34]
call sym.libcrypto_1_1.dll_EVP_Digest
add esp, 0x18
test eax, eax
je 0x1012883a
push ebp
lea eax, [esp + 0x90]
push eax
push edi
call sym.libcrypto_1_1.dll_CRYPTO_memcmp
add esp, 0xc
mov edi, ebp
lea ecx, [eax - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
neg ecx
and ebx, ecx
mov dword [esp + 0x10], ebx
xor ebx, ebx
cmp ebp, esi
mov ebp, dword [esp + 0x10]
jge 0x10128692
mov eax, dword [esp + 0x14]
movzx esi, byte [edi + eax]
mov eax, ebx
mov edx, esi
not eax
xor edx, 1
dec edx
shr edx, 0x1f
neg edx
and eax, edx
or ebx, edx
mov dword [esp + 0x20], eax
not eax
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
and ecx, edi
and eax, dword [esp + 0x2c]
inc edi
or eax, ecx
mov dword [esp + 0x2c], eax
lea eax, [esi - 1]
mov esi, dword [esp + 0x18]
shr eax, 0x1f
neg eax
or eax, ebx
and ebp, eax
cmp edi, esi
jl 0x10128644
mov edx, dword [esp + 0xd8]
mov eax, esi
sub eax, dword [esp + 0x2c]
mov ecx, edx
dec eax
mov edi, esi
sub ecx, eax
mov dword [esp + 0x38], eax
xor ecx, eax
xor eax, edx
or ecx, eax
xor ecx, edx
shr ecx, 0x1f
dec ecx
and ecx, ebx
mov ebx, dword [esp + 0xd8]
and ebp, ecx
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x3c]
sub edi, ebp
lea ecx, [edi - 1]
mov edx, ecx
mov eax, ecx
sub edx, ebx
xor eax, ebx
xor edx, ebx
or edx, eax
xor edx, ecx
lea ecx, [edi - 1]
shr edx, 0x1f
neg edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x20], edx
not edx
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
and eax, ecx
and edx, ebx
mov ebx, 1
or edx, eax
mov dword [esp + 0x1c], edx
cmp ecx, ebx
jle 0x1012879a
sub edi, dword [esp + 0x38]
lea edx, [ebp + 1]
mov dword [esp + 0x44], edx
lea eax, [edi - 1]
mov dword [esp + 0x34], eax
and eax, ebx
mov edi, esi
sub edi, ebx
lea ecx, [eax - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
dec ecx
cmp edx, edi
jge 0x10128786
mov esi, dword [esp + 0x14]
movzx eax, cl
add esi, edx
mov ebp, eax
mov dword [esp + 0x2c], eax
not ebp
sub edi, edx
nop
mov dword [esp + 0x20], eax
lea esi, [esi + 1]
movzx eax, byte [esi + ebx - 1]
mov dword [esp + 0x28], ebp
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
and dl, al
movzx eax, byte [esi - 1]
and cl, al
mov eax, dword [esp + 0x2c]
or cl, dl
mov byte [esi - 1], cl
sub edi, 1
jne 0x10128750
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x34]
add ebx, ebx
cmp ebx, dword [esp + 0x30]
jl 0x10128723
mov ebp, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
xor esi, esi
test edx, edx
jle 0x10128814
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x38]
shr eax, 0x1f
neg edi
add ebp, dword [esp + 0x14]
mov dword [esp + 0x44], eax
nop dword [eax]
mov ecx, edi
mov edx, esi
shr ecx, 0x1f
inc edi
xor cl, al
shr edx, 0x1f
xor al, dl
or cl, al
movzx eax, bl
xor cl, dl
neg cl
movzx ecx, cl
and ecx, eax
movzx eax, byte [esi + ebp + 1]
mov dword [esp + 0x34], ecx
not ecx
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
and dl, al
mov eax, dword [esp + 0x48]
movzx eax, byte [eax + esi]
and cl, al
mov eax, dword [esp + 0x48]
or cl, dl
mov byte [eax + esi], cl
inc esi
mov eax, dword [esp + 0x44]
cmp esi, dword [esp + 0x1c]
jl 0x101287c0
push 0x107
push str.crypto_rsa_rsa_oaep.c
push 0x79
push 0x99
push 4
call sym.libcrypto_1_1.dll_ERR_put_error
mov eax, ebx
and eax, 1
push eax
call fcn.10006080
add esp, 0x18
mov edi, dword [esp + 0x18]
lea eax, [esp + 0x4c]
push 0x40
push eax
call sym.libcrypto_1_1.dll_OPENSSL_cleanse
push 0x10b
push str.crypto_rsa_rsa_oaep.c
push edi
push dword [esp + 0x28]
call sym.libcrypto_1_1.dll_CRYPTO_clear_free
push 0x10c
push str.crypto_rsa_rsa_oaep.c
push dword [esp + 0x60]
push dword [esp + 0x48]
call sym.libcrypto_1_1.dll_CRYPTO_clear_free
mov dword [esp + 0x5c], ebx
add esp, 0x28
not ebx
mov dword [esp + 0x30], ebx
mov ecx, dword [esp + 0x34]
and ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
or eax, ecx
jmp 0x101288b0
push 0x98
push str.crypto_rsa_rsa_oaep.c
push 0x79
push 0x99
push 4
call sym.libcrypto_1_1.dll_ERR_put_error
add esp, 0x14
or eax, 0xffffffff
mov ecx, dword [esp + 0xcc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1000b910
add esp, 0xc0
ret