Function at 0x10107d00
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0xbc
call fcn.100335c0
mov eax, dword [0x101d5024]
xor eax, esp
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xc0]
push ebx
mov ebx, dword [esp + 0xd4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xcc]
push ebp
mov dword [esp + 0x18], eax
xor ebp, ebp
mov eax, dword [esp + 0xdc]
push esi
mov esi, dword [esp + 0xd8]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x24], 0
mov dword [esp + 0x18], ebp
push edi
mov edi, dword [esp + 0xf0]
test eax, eax
jne 0x10107d84
call fcn.100b9810
mov dword [esp + 0x24], eax
test edi, edi
push eax
cmove edi, eax
mov dword [esp + 0x14], edi
call fcn.100cbda0
mov edi, eax
add esp, 4
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x44], edi
test eax, eax
jle 0x10108210
test esi, esi
jle 0x10108210
cmp ebx, esi
jl 0x101081f5
lea eax, [edi*2 + 2]
cmp ebx, eax
jl 0x101081f5
push 0x9e
sub ebx, edi
dec ebx
push str..crypto_rsa_rsa_oaep.c
push ebx
mov dword [esp + 0x20], ebx
call fcn.100b2680
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x10107e0c
push 0xa0
push str..crypto_rsa_rsa_oaep.c
push 0x41
push 0xa1
push 4
call fcn.100c0100
add esp, 0x14
jmp 0x101081b5
push 0xa4
push str..crypto_rsa_rsa_oaep.c
push dword [esp + 0x34]
call fcn.100b2680
add esp, 0xc
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x10107e31
push 0xa7
jmp 0x10107df1
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
add edx, esi
add ebp, eax
mov dword [esp + 0x1c], ebp
test eax, eax
jle 0x10107e7e
mov ebx, eax
nop dword [eax + eax]
mov eax, esi
lea ecx, [esi - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
dec ebp
and ecx, eax
dec ecx
mov eax, ecx
and eax, 1
sub edx, eax
sub esi, eax
mov al, byte [edx]
and al, cl
mov byte [ebp], al
sub ebx, 1
jne 0x10107e50
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x1c], ebp
movzx eax, byte [ebp]
push dword [esp + 0x10]
push ebx
lea ebp, [eax - 1]
not eax
shr eax, 0x1f
shr ebp, 0x1f
and ebp, eax
mov eax, dword [esp + 0x24]
neg ebp
lea esi, [eax + 1]
inc eax
add eax, edi
push eax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x54]
push edi
push eax
call fcn.101077b0
add esp, 0x14
test eax, eax
jne 0x101081b5
xor edx, edx
test edi, edi
jle 0x10107f50
cmp edi, 0x20
jb 0x10107f34
lea eax, [esi - 1]
lea ebx, [esp + 0x48]
add eax, edi
cmp ebx, eax
lea ecx, [esp + edi + 0x47]
mov ebx, dword [esp + 0x14]
ja 0x10107ee3
cmp ecx, esi
jae 0x10107f34
mov eax, edi
and eax, 0x8000001f
jns 0x10107ef1
dec eax
or eax, 0xffffffe0
inc eax
mov ecx, edi
mov ebx, esi
sub ecx, eax
lea eax, [esp + 0x48]
sub ebx, eax
nop dword [eax]
movups xmm0, xmmword [esp + edx + 0x48]
lea eax, [ebx + edx]
movups xmm1, xmmword [esp + eax + 0x48]
pxor xmm1, xmm0
movups xmmword [esp + edx + 0x48], xmm1
movups xmm1, xmmword [esi + edx + 0x10]
movups xmm0, xmmword [esp + edx + 0x58]
pxor xmm1, xmm0
movups xmmword [esp + edx + 0x58], xmm1
add edx, 0x20
cmp edx, ecx
jl 0x10107f00
mov ebx, dword [esp + 0x14]
cmp edx, edi
jge 0x10107f50
lea eax, [esp + 0x48]
sub esi, eax
nop
lea ecx, [esp + 0x48]
add ecx, edx
inc edx
mov al, byte [ecx + esi]
xor byte [ecx], al
cmp edx, edi
jl 0x10107f40
push dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x4c]
push edi
push eax
push ebx
push esi
call fcn.101077b0
add esp, 0x14
test eax, eax
jne 0x101081b5
xor edx, edx
test ebx, ebx
jle 0x1010802b
cmp ebx, 0x20
jb 0x10108002
mov ecx, dword [esp + 0x20]
lea eax, [ecx - 1]
add eax, ebx
cmp esi, eax
ja 0x10107f99
lea eax, [esi - 1]
add eax, ebx
cmp eax, ecx
jae 0x10108002
mov eax, ebx
and eax, 0x8000001f
jns 0x10107fa7
dec eax
or eax, 0xffffffe0
inc eax
mov dword [esp + 0x10], ebx
mov ebx, ecx
sub dword [esp + 0x10], eax
sub ebx, esi
add ecx, 0x10
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x14]
mov eax, esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x40]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmm1, xmmword [esi + eax - 0x20]
pxor xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
movups xmm1, xmmword [edi + edx]
add edx, 0x20
movups xmm0, xmmword [eax - 0x10]
pxor xmm1, xmm0
movups xmmword [eax - 0x10], xmm1
cmp edx, ecx
jl 0x10107fd0
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x18]
cmp edx, ebx
jge 0x1010802b
sub dword [esp + 0x20], esi
lea ecx, [edx + esi]
mov esi, ebx
mov ebx, dword [esp + 0x20]
sub esi, edx
mov al, byte [ecx + ebx]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
sub esi, 1
jne 0x10108015
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
push 0
push dword [esp + 0x28]
lea eax, [esp + 0x90]
push 0
push eax
push dword [esp + 0xf8]
push dword [esp + 0x48]
call fcn.100b9140
add esp, 0x18
test eax, eax
je 0x101081b5
push edi
lea eax, [esp + 0x8c]
push eax
push esi
call fcn.100c7a00
add esp, 0xc
lea ecx, [eax - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
neg ecx
and ebp, ecx
xor ecx, ecx
mov dword [esp + 0x10], ecx
cmp edi, ebx
jge 0x101080d5
movzx esi, byte [edi + esi]
not ecx
mov eax, esi
xor eax, 1
lea edx, [eax - 1]
not eax
shr eax, 0x1f
shr edx, 0x1f
and edx, eax
neg edx
and ecx, edx
mov eax, ecx
and ecx, edi
not eax
inc edi
and eax, dword [esp + 0x28]
or eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], eax
or ecx, edx
lea eax, [esi - 1]
mov dword [esp + 0x10], ecx
shr eax, 0x1f
not esi
shr esi, 0x1f
and eax, esi
mov esi, dword [esp + 0x18]
neg eax
or eax, ecx
and ebp, eax
cmp edi, ebx
jl 0x10108083
mov edi, dword [esp + 0xd4]
mov eax, ebx
mov edx, dword [esp + 0x28]
mov ecx, edi
inc edx
sub eax, edx
sub ecx, eax
xor ecx, eax
xor eax, edi
or ecx, eax
mov eax, ebx
xor ecx, edi
xor eax, edi
shr ecx, 0x1f
dec ecx
and ecx, dword [esp + 0x10]
and ebp, ecx
mov ecx, ebx
sub ecx, edi
mov dword [esp + 0x34], ebp
xor ecx, edi
mov dword [esp + 0x24], ebp
or ecx, eax
and edx, ebp
xor ecx, ebx
mov eax, ebp
shr ecx, 0x1f
not eax
neg ecx
mov edi, ecx
and ecx, ebx
not edi
and edi, dword [esp + 0xd4]
or edi, ecx
mov ecx, ebx
sub ecx, edi
and ecx, eax
mov eax, ebx
or ecx, edx
xor edx, edx
sub eax, ecx
add esi, ecx
mov dword [esp + 0x30], eax
test edi, edi
jle 0x1010818f
mov ebp, eax
mov eax, edx
xor eax, ebp
lea ecx, [eax - 1]
not eax
shr eax, 0x1f
shr ecx, 0x1f
and ecx, eax
neg ecx
mov eax, ecx
and eax, ebx
mov ebx, dword [esp + 0x38]
sub esi, eax
mov eax, dword [esp + 0x24]
xor ecx, eax
and eax, ecx
movzx ecx, al
mov dword [esp + 0x24], eax
mov al, byte [esi + edx]
and al, cl
not cl
and cl, byte [ebx + edx]
or al, cl
mov ecx, ebx
mov ebx, dword [esp + 0x14]
mov byte [ecx + edx], al
inc edx
cmp edx, edi
jl 0x10108145
mov ebp, dword [esp + 0x34]
push 0x108
push str..crypto_rsa_rsa_oaep.c
push 0x79
push 0xa1
push 4
call fcn.100c0100
mov eax, ebp
and eax, 1
push eax
call fcn.100c04c0
add esp, 0x18
lea eax, [esp + 0x48]
push 0x40
push eax
call fcn.10006c60
mov esi, dword [esp + 0x20]
push ebx
push esi
call fcn.10006c60
push esi
call fcn.100b25b0
push dword [esp + 0x40]
mov esi, dword [esp + 0x34]
push esi
call fcn.10006c60
push esi
call fcn.100b25b0
mov eax, ebp
add esp, 0x20
and eax, dword [esp + 0x30]
not ebp
or eax, ebp
jmp 0x10108213
push 0x99
push str..crypto_rsa_rsa_oaep.c
push 0x79
push 0xa1
push 4
call fcn.100c0100
add esp, 0x14
or eax, 0xffffffff
mov ecx, dword [esp + 0xc8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1003357f
add esp, 0xbc
ret