Function at 0x1003d840
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x28
call fcn.100bf140
mov eax, dword [0x10116cb0]
xor eax, esp
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
push ebp
mov ebp, dword [esp + 0x3c]
push esi
mov esi, dword [esp + 0x38]
dec esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x14], eax
push edi
mov edi, dword [esp + 0x38]
lea eax, [esi - 0x29]
cmp ebp, eax
jle 0x1003d8a5
push 0x2c
push str..crypto_rsa_rsa_oaep.c
push 0x6e
push 0x79
push 4
call sym.LIBEAY32.dll_ERR_put_error
add esp, 0x14
xor eax, eax
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x24]
xor ecx, esp
call fcn.100bf100
add esp, 0x28
ret
cmp esi, 0x29
jge 0x1003d8d3
push 0x31
push str..crypto_rsa_rsa_oaep.c
push 0x78
push 0x79
push 4
call sym.LIBEAY32.dll_ERR_put_error
add esp, 0x14
xor eax, eax
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x24]
xor ecx, esp
call fcn.100bf100
add esp, 0x28
ret
push ebx
mov byte [edi], 0
lea ebx, [edi + 1]
add edi, 0x15
mov dword [esp + 0x18], ebx
push 0
mov dword [esp + 0x18], edi
call sym.LIBEAY32.dll_EVP_sha1
push eax
push 0
push edi
push dword [esp + 0x60]
push dword [esp + 0x30]
call sym.LIBEAY32.dll_EVP_Digest
add esp, 0x18
test eax, eax
je 0x1003d96d
mov eax, esi
sub eax, ebp
sub eax, 0x29
push eax
lea eax, [edi + 0x14]
push 0
push eax
call sub.MSVCR120.dll_memset
mov eax, edi
sub eax, ebp
push ebp
push dword [esp + 0x20]
mov byte [eax + esi - 0x15], 1
add eax, 0xffffffec
add eax, esi
push eax
call sub.MSVCR120.dll_memcpy
push 0x14
push ebx
call sym.LIBEAY32.dll_RAND_bytes
add esp, 0x20
test eax, eax
jle 0x1003d96d
push 0x47
add esi, 0xffffffec
push str..crypto_rsa_rsa_oaep.c
push esi
call sym.LIBEAY32.dll_CRYPTO_malloc
mov ebp, eax
add esp, 0xc
test ebp, ebp
jne 0x1003d982
push 0x49
push str..crypto_rsa_rsa_oaep.c
push 0x41
push 0x79
push 4
call sym.LIBEAY32.dll_ERR_put_error
add esp, 0x14
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x24]
xor ecx, esp
call fcn.100bf100
add esp, 0x28
ret
push 0x14
push ebx
push esi
push ebp
call fcn.1003d6a0
add esp, 0x10
test eax, eax
js 0x1003d96d
xor edx, edx
test esi, esi
jle 0x1003da18
cmp esi, 0x10
jb 0x1003d9f5
lea eax, [esi - 1]
lea ecx, [edi - 1]
add eax, ebp
add ecx, esi
cmp edi, eax
ja 0x1003d9b0
cmp ecx, ebp
jae 0x1003d9f5
mov eax, esi
and eax, reloc.WS2_32.dll_ntohs
jns 0x1003d9be
dec eax
or eax, 0xfffffff0
inc eax
mov ecx, esi
mov ebx, ebp
sub ecx, eax
sub ebx, edi
mov dword [esp + 0x10], ebx
mov eax, edi
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
movdqu xmm1, xmmword [edi + eax]
add edx, 0x10
lea eax, [eax + 0x10]
movdqu xmm0, xmmword [eax - 0x10]
pxor xmm1, xmm0
movdqu xmmword [eax - 0x10], xmm1
cmp edx, ecx
jl 0x1003d9d4
mov edi, dword [esp + 0x14]
cmp edx, esi
jge 0x1003da18
mov ebx, ebp
lea ecx, [edx + edi]
sub ebx, edi
mov edi, esi
sub edi, edx
mov al, byte [ecx + ebx]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
dec edi
jne 0x1003da04
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
call sym.LIBEAY32.dll_EVP_sha1
push eax
push esi
push edi
lea eax, [esp + 0x2c]
push 0x14
push eax
call sym.LIBEAY32.dll_PKCS1_MGF1
add esp, 0x14
test eax, eax
js 0x1003d96d
lea edx, [esp + 0x33]
xor eax, eax
lea ecx, [ebx + 0x13]
cmp ebx, edx
ja 0x1003da50
lea edx, [esp + 0x20]
cmp ecx, edx
jae 0x1003da67
lea esp, [esp]
movdqu xmm1, xmmword [ebx]
mov eax, 0x10
movdqu xmm0, xmmword [esp + 0x20]
pxor xmm1, xmm0
movdqu xmmword [ebx], xmm1
lea esi, [esp + 0x20]
mov edx, 0x14
sub esi, ebx
lea ecx, [eax + ebx]
sub edx, eax
mov al, byte [esi + ecx]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
dec edx
jne 0x1003da77
push ebp
call sym.LIBEAY32.dll_CRYPTO_free
mov ecx, dword [esp + 0x38]
add esp, 4
mov eax, 1
pop ebx
pop edi
pop esi
pop ebp
xor ecx, esp
call fcn.100bf100
add esp, 0x28
ret