Function at 0x1003d530
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0xa4
call fcn.100bff40
mov eax, dword [0x10116c70]
xor eax, esp
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xbc]
push ebp
mov ebp, dword [esp + 0xb8]
mov dword [esp + 0x1c], eax
xor eax, eax
cmp dword [esp + 0xb0], eax
push esi
mov esi, dword [esp + 0xc0]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], eax
mov dword [esp + 8], eax
mov dword [esp + 0x18], eax
jle 0x1003d821
cmp ebp, eax
jle 0x1003d821
cmp esi, ebp
push ebx
push edi
jl 0x1003d7a8
cmp esi, 0x2a
jl 0x1003d7a8
push 0x7a
lea ebx, [esi - 0x15]
push str..crypto_rsa_rsa_oaep.c
push ebx
mov dword [esp + 0x38], ebx
call sym.LIBEAY32.dll_CRYPTO_malloc
push 0x7b
push str..crypto_rsa_rsa_oaep.c
push esi
mov dword [esp + 0x28], eax
call sym.LIBEAY32.dll_CRYPTO_malloc
add esp, 0x18
cmp dword [esp + 0x10], 0
mov edi, eax
mov dword [esp + 0x20], edi
je 0x1003d816
test edi, edi
je 0x1003d816
push esi
push 0
push edi
call sub.MSVCR90.dll_memset
mov eax, dword [esp + 0x20]
push ebp
sub esi, ebp
push eax
add esi, edi
push esi
call sub.MSVCR90.dll_memcpy
movzx eax, byte [edi]
lea ebp, [eax - 1]
push ebx
lea esi, [edi + 1]
add edi, 0x15
not eax
push edi
shr ebp, 0x1f
shr eax, 0x1f
lea ecx, [esp + 0x50]
and ebp, eax
push 0x14
push ecx
neg ebp
mov dword [esp + 0x3c], edi
call fcn.1003d2f0
add esp, 0x28
test eax, eax
jne 0x1003d7c0
mov edi, esi
lea edx, [esp + 0x30]
xor ecx, ecx
sub edi, edx
lea eax, [esp + ecx + 0x30]
movzx edx, byte [edi + eax]
xor byte [eax], dl
movzx edx, byte [esi + ecx + 1]
xor byte [eax + 1], dl
movzx edx, byte [esi + ecx + 2]
xor byte [eax + 2], dl
movzx edx, byte [esi + ecx + 3]
xor byte [eax + 3], dl
movzx edx, byte [esi + ecx + 4]
xor byte [eax + 4], dl
add ecx, 5
cmp ecx, 0x14
jl 0x1003d650
mov ecx, dword [esp + 0x10]
push 0x14
lea eax, [esp + 0x34]
push eax
push ebx
push ecx
call fcn.1003d2f0
add esp, 0x10
test eax, eax
jne 0x1003d7c0
test ebx, ebx
jle 0x1003d6bb
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
sub esi, eax
mov edi, ebx
nop
mov dl, byte [esi + eax]
xor byte [eax], dl
inc eax
sub edi, 1
jne 0x1003d6b0
push 0
call sym.LIBEAY32.dll_EVP_sha1
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0x28]
push eax
push 0
lea eax, [esp + 0x7c]
push eax
push ecx
push edx
call sym.LIBEAY32.dll_EVP_Digest
add esp, 0x18
test eax, eax
je 0x1003d7c0
mov ecx, dword [esp + 0x10]
push 0x14
lea eax, [esp + 0x74]
push eax
push ecx
call sym.LIBEAY32.dll_CRYPTO_memcmp
lea edx, [eax - 1]
shr edx, 0x1f
not eax
shr eax, 0x1f
and edx, eax
neg edx
mov esi, 0x14
add esp, 0xc
and ebp, edx
xor edi, edi
cmp ebx, esi
jle 0x1003d770
jmp 0x1003d720
mov eax, dword [esp + 0x10]
movzx ecx, byte [esi + eax]
mov eax, ecx
xor eax, 1
lea edx, [eax - 1]
shr edx, 0x1f
not eax
shr eax, 0x1f
and edx, eax
neg edx
mov eax, edi
or edi, edx
not eax
and eax, edx
lea edx, [ecx - 1]
mov ebx, eax
not ebx
and ebx, dword [esp + 0x18]
shr edx, 0x1f
not ecx
shr ecx, 0x1f
and eax, esi
and edx, ecx
or ebx, eax
neg edx
or edx, edi
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x2c]
inc esi
and ebp, edx
cmp esi, ebx
jl 0x1003d720
test ebp, edi
je 0x1003d7a8
mov eax, dword [esp + 0x18]
inc eax
sub ebx, eax
cmp dword [esp + 0xbc], ebx
mov dword [esp + 0x1c], ebx
jge 0x1003d7ff
push 0xc1
push str..crypto_rsa_rsa_oaep.c
push 0x6d
push 0x7a
push 4
call sym.LIBEAY32.dll_ERR_put_error
add esp, 0x14
mov dword [esp + 0x1c], 0xffffffff
push 0xcd
push str..crypto_rsa_rsa_oaep.c
push 0x79
push 0x7a
push 4
call sym.LIBEAY32.dll_ERR_put_error
add esp, 0x14
mov eax, dword [esp + 0x10]
pop edi
pop ebx
test eax, eax
je 0x1003d7d3
push eax
call sym.LIBEAY32.dll_CRYPTO_free
add esp, 4
mov eax, dword [esp + 0x18]
test eax, eax
je 0x1003d7e4
push eax
call sym.LIBEAY32.dll_CRYPTO_free
add esp, 4
mov eax, dword [esp + 0x14]
pop esi
pop ebp
mov ecx, dword [esp + 0xa0]
xor ecx, esp
call fcn.100bff70
add esp, 0xa4
ret
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
push ebx
add eax, ecx
push eax
push edx
call sub.MSVCR90.dll_memcpy
add esp, 0xc
jmp 0x1003d7c0
push 0x7e
push str..crypto_rsa_rsa_oaep.c
push 0x41
jmp 0x1003d7b4
mov ecx, dword [esp + 0xa8]
pop esi
pop ebp
xor ecx, esp
or eax, 0xffffffff
call fcn.100bff70
add esp, 0xa4
ret