Function at 0x10033550
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x9c
call fcn.10084230
mov eax, dword [esp + 0xbc]
push edi
xor edi, edi
mov dword [esp + 0x10], 0xffffffff
cmp eax, edi
mov dword [esp + 0x14], edi
mov dword [esp + 4], edi
mov dword [esp + 0xc], edi
jne 0x10033588
call fcn.10040e70
mov dword [esp + 0xc0], eax
cmp dword [esp + 0xc4], edi
jne 0x10033598
mov dword [esp + 0xc4], eax
push eax
call fcn.10030c30
mov ecx, dword [esp + 0xac]
add esp, 4
cmp ecx, edi
mov dword [esp + 0x18], eax
jle 0x100338a3
mov ecx, dword [esp + 0xb0]
cmp ecx, edi
jle 0x100338a3
push ebx
push ebp
mov ebp, dword [esp + 0xbc]
push esi
cmp ebp, ecx
jl 0x1003389a
lea ecx, [eax + eax + 2]
cmp ebp, ecx
jl 0x1003389a
mov ebx, ebp
push 0x9b
sub ebx, eax
push str..crypto_rsa_rsa_oaep.c
dec ebx
push ebx
call fcn.100254a0
push 0x9c
mov esi, eax
push str..crypto_rsa_rsa_oaep.c
push ebp
mov dword [esp + 0x28], esi
call fcn.100254a0
add esp, 0x18
mov edx, eax
cmp esi, edi
mov dword [esp + 0x18], edx
je 0x1003387d
cmp edx, edi
je 0x1003387d
mov ecx, ebp
xor eax, eax
mov esi, ecx
mov edi, edx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, esi
mov esi, dword [esp + 0xb8]
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [esp + 0xbc]
mov edi, edx
sub edi, ecx
mov eax, ecx
add edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov al, byte [edx]
mov esi, dword [esp + 0x24]
lea ebp, [eax - 1]
not eax
shr ebp, 0x1f
shr eax, 0x1f
and ebp, eax
mov eax, edx
mov edx, dword [esp + 0xd0]
lea ecx, [eax + 1]
lea eax, [esi + eax + 1]
push edx
push ebx
mov dword [esp + 0x30], eax
push eax
lea eax, [esp + 0x38]
push esi
push eax
mov dword [esp + 0x28], ecx
neg ebp
call fcn.100338b0
add esp, 0x14
test eax, eax
jne 0x10033837
xor edi, edi
test esi, esi
jle 0x100336c1
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x2c]
sub ecx, edx
lea eax, [esp + edi + 0x2c]
mov dl, byte [ecx + eax]
xor byte [eax], dl
inc edi
cmp edi, esi
jl 0x100336b3
mov eax, dword [esp + 0xd0]
mov edx, dword [esp + 0x10]
push eax
lea ecx, [esp + 0x30]
push esi
push ecx
push ebx
push edx
call fcn.100338b0
add esp, 0x14
test eax, eax
jne 0x10033837
test ebx, ebx
jle 0x100336fe
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
sub edi, eax
mov ecx, ebx
mov dl, byte [edi + eax]
xor byte [eax], dl
inc eax
dec ecx
jne 0x100336f5
mov eax, dword [esp + 0xcc]
mov edx, dword [esp + 0xc8]
push 0
push eax
mov eax, dword [esp + 0xcc]
lea ecx, [esp + 0x74]
push 0
push ecx
push edx
push eax
call fcn.10049da0
add esp, 0x18
test eax, eax
je 0x10033837
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x6c]
push esi
push ecx
push edx
call fcn.100280f0
lea ecx, [eax - 1]
add esp, 0xc
not eax
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
mov eax, dword [esp + 0x24]
neg ecx
and ebp, ecx
xor edi, edi
cmp eax, ebx
mov dword [esp + 0x14], ebp
jge 0x100337b6
mov edx, dword [esp + 0x10]
xor ecx, ecx
mov cl, byte [esi + edx]
mov eax, ecx
xor eax, 1
lea edx, [eax - 1]
not eax
shr edx, 0x1f
shr eax, 0x1f
and edx, eax
mov eax, edi
neg edx
not eax
and eax, edx
or edi, edx
mov ebp, eax
and eax, esi
not ebp
and ebp, dword [esp + 0x20]
or ebp, eax
lea eax, [ecx - 1]
not ecx
shr eax, 0x1f
shr ecx, 0x1f
and eax, ecx
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x14]
neg eax
or eax, edi
and ebp, eax
inc esi
cmp esi, ebx
mov dword [esp + 0x14], ebp
jl 0x10033761
test ebp, edi
je 0x100337f7
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0xb4]
lea eax, [ecx + 1]
mov ecx, ebx
sub ecx, eax
cmp edx, ecx
mov dword [esp + 0x1c], ecx
jge 0x1003381b
push 0xe1
push str..crypto_rsa_rsa_oaep.c
push 0x6d
push 0xa1
push 4
call fcn.10025e30
add esp, 0x14
mov dword [esp + 0x1c], 0xffffffff
mov ebp, dword [esp + 0xc0]
push 0xee
push str..crypto_rsa_rsa_oaep.c
push 0x79
push 0xa1
push 4
call fcn.10025e30
add esp, 0x14
jmp 0x1003383e
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0xb0]
lea esi, [eax + edx]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ebp, dword [esp + 0xc0]
mov esi, dword [esp + 0x10]
test esi, esi
je 0x10033856
push ebx
push esi
call fcn.1002fc90
push esi
call fcn.10025720
add esp, 0xc
mov esi, dword [esp + 0x18]
test esi, esi
je 0x1003386e
push ebp
push esi
call fcn.1002fc90
push esi
call fcn.10025720
add esp, 0xc
mov eax, dword [esp + 0x1c]
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x9c
ret
push 0x9e
push str..crypto_rsa_rsa_oaep.c
push 0x41
push 0xa1
push 4
call fcn.10025e30
add esp, 0x14
jmp 0x1003383e
mov ebx, dword [esp + 0x28]
jmp 0x100337fe
or eax, 0xffffffff
pop edi
add esp, 0x9c
ret