Function at 0x2a956e90
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0xb4
call fcn.2a8ca120
mov eax, dword [0x2a9fd098]
xor eax, esp
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb8]
push ebx
mov dword [esp + 0x30], eax
xor ebx, ebx
mov eax, dword [esp + 0xcc]
push ebp
mov ebp, dword [esp + 0xe0]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x20], 0
mov dword [esp + 0x18], ebx
push esi
push edi
test eax, eax
jne 0x2a956f02
call fcn.2a8db8f0
mov dword [esp + 0x18], eax
test ebp, ebp
push eax
cmove ebp, eax
mov dword [esp + 0x28], ebp
call fcn.2a8d1460
add esp, 4
mov edi, eax
mov dword [esp + 0x38], edi
cmp dword [esp + 0xcc], ebx
jle 0x2a957455
mov esi, dword [esp + 0xd4]
test esi, esi
jle 0x2a957455
mov ecx, dword [esp + 0x30]
cmp ecx, esi
jl 0x2a95743a
lea eax, [edi*2 + 2]
cmp ecx, eax
jl 0x2a95743a
mov ebp, ecx
push 0x9d
sub ebp, edi
dec ebp
push str.crypto_rsa_rsa_oaep.c
push ebp
mov dword [esp + 0x20], ebp
call fcn.2a8cbcf0
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x2a956f95
push 0x9f
push str.crypto_rsa_rsa_oaep.c
push 0x41
push 0x99
push 4
call fcn.2a8cf650
add esp, 0x14
jmp 0x2a9573f4
push 0xa3
push str.crypto_rsa_rsa_oaep.c
push dword [esp + 0x38]
call fcn.2a8cbcf0
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x20], ecx
test ecx, ecx
jne 0x2a956fbc
push 0xa6
jmp 0x2a956f7a
mov edx, dword [esp + 0xd0]
mov eax, dword [esp + 0x30]
add edx, esi
add ecx, eax
mov dword [esp + 0x20], ecx
test eax, eax
jle 0x2a957007
mov ebx, eax
mov ebp, ecx
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
and cl, byte [edx]
mov byte [ebp], cl
sub ebx, 1
jne 0x2a956fd7
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
push dword [esp + 0x24]
movzx ebx, byte [ecx]
lea eax, [ecx + 1]
add eax, edi
lea esi, [ecx + 1]
push ebp
push eax
lea ebx, [ebx - 1]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x4c]
shr ebx, 0x1f
push edi
push eax
neg ebx
call fcn.2a9568c0
add esp, 0x14
test eax, eax
jne 0x2a9573f4
xor edx, edx
test edi, edi
jle 0x2a9570f0
cmp edi, 0x40
jb 0x2a9570d2
lea eax, [esi - 1]
add eax, edi
lea ebp, [esp + 0x40]
lea ecx, [esp + edi + 0x3f]
cmp ebp, eax
ja 0x2a957062
cmp ecx, esi
jae 0x2a9570d2
mov eax, edi
and eax, 0x8000003f
jns 0x2a957070
dec eax
or eax, 0xffffffc0
inc eax
mov ecx, edi
sub ecx, eax
nop dword [eax]
nop dword [eax + eax]
movups xmm0, xmmword [esp + edx + 0x40]
movups xmm1, xmmword [esi + edx]
pxor xmm1, xmm0
movups xmmword [esp + edx + 0x40], xmm1
movups xmm0, xmmword [esp + edx + 0x50]
movups xmm1, xmmword [esi + edx + 0x10]
pxor xmm1, xmm0
movups xmmword [esp + edx + 0x50], xmm1
movups xmm0, xmmword [esp + edx + 0x60]
movups xmm1, xmmword [esi + edx + 0x20]
pxor xmm1, xmm0
movups xmmword [esp + edx + 0x60], xmm1
movups xmm0, xmmword [esp + edx + 0x70]
movups xmm1, xmmword [esi + edx + 0x30]
pxor xmm1, xmm0
movups xmmword [esp + edx + 0x70], xmm1
add edx, 0x40
cmp edx, ecx
jl 0x2a957080
cmp edx, edi
jge 0x2a9570f0
lea eax, [esp + 0x40]
sub esi, eax
nop dword [eax]
lea ecx, [esp + 0x40]
add ecx, edx
inc edx
mov al, byte [esi + ecx]
xor byte [ecx], al
cmp edx, edi
jl 0x2a9570e0
push dword [esp + 0x24]
mov esi, dword [esp + 0x18]
lea eax, [esp + 0x44]
mov ebp, dword [esp + 0x14]
push edi
push eax
push esi
push ebp
call fcn.2a9568c0
add esp, 0x14
test eax, eax
jne 0x2a9573f0
xor edx, edx
test esi, esi
jle 0x2a9571e6
mov ecx, ebp
mov ebp, dword [esp + 0x1c]
cmp esi, 0x40
jb 0x2a9571c3
lea eax, [ebp - 1]
add eax, esi
cmp ecx, eax
ja 0x2a957143
lea eax, [ecx - 1]
add eax, esi
cmp eax, ebp
jae 0x2a9571c3
mov eax, esi
and eax, 0x8000003f
jns 0x2a957151
dec eax
or eax, 0xffffffc0
inc eax
mov dword [esp + 0x24], esi
mov edi, ebp
sub dword [esp + 0x24], eax
sub edi, ecx
mov dword [esp + 0x1c], edi
mov eax, ecx
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x1c]
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 [edx + ebp + 0x10]
pxor xmm1, xmm0
movups xmmword [eax - 0x30], xmm1
movups xmm0, xmmword [eax - 0x20]
movups xmm1, xmmword [edx + ebp + 0x20]
pxor xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
movups xmm0, xmmword [eax - 0x10]
movups xmm1, xmmword [edx + ebp + 0x30]
add edx, 0x40
pxor xmm1, xmm0
movups xmmword [eax - 0x10], xmm1
cmp edx, dword [esp + 0x24]
jl 0x2a957170
mov esi, dword [esp + 0x14]
cmp edx, esi
jge 0x2a9571e2
sub ebp, dword [esp + 0x10]
add ecx, edx
sub esi, edx
nop
mov al, byte [ecx + ebp]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
sub esi, 1
jne 0x2a9571d0
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
push 0
push dword [esp + 0x1c]
lea eax, [esp + 0x88]
push 0
push eax
push dword [esp + 0xf0]
push dword [esp + 0x40]
call fcn.2a8d1490
add esp, 0x18
test eax, eax
je 0x2a9573f0
push edi
lea eax, [esp + 0x84]
push eax
push ebp
call fcn.2a801390
add esp, 0xc
xor ebp, ebp
lea ecx, [eax - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
neg ecx
and ebx, ecx
cmp dword [esp + 0x38], esi
jge 0x2a957289
nop dword [eax]
mov eax, dword [esp + 0x10]
mov ecx, ebp
not ecx
movzx esi, byte [edi + eax]
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
or ebp, edx
mov eax, ecx
and ecx, edi
not eax
inc edi
and eax, dword [esp + 0x28]
or eax, ecx
mov dword [esp + 0x28], eax
lea eax, [esi - 1]
mov esi, dword [esp + 0x14]
shr eax, 0x1f
neg eax
or eax, ebp
and ebx, eax
cmp edi, esi
jl 0x2a957240
mov ecx, dword [esp + 0xcc]
mov eax, esi
sub eax, dword [esp + 0x28]
mov edi, esi
dec eax
sub ecx, eax
mov dword [esp + 0x34], eax
xor ecx, eax
xor eax, dword [esp + 0xcc]
or ecx, eax
mov eax, dword [esp + 0xcc]
xor ecx, eax
shr ecx, 0x1f
dec ecx
and ecx, ebp
mov ebp, dword [esp + 0x38]
sub edi, ebp
and ebx, ecx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], ebx
lea ecx, [edi - 1]
mov edx, ecx
sub edx, eax
xor edx, eax
mov eax, ecx
xor eax, dword [esp + 0xcc]
or edx, eax
lea eax, [edi - 1]
xor edx, ecx
mov dword [esp + 0x18], eax
shr edx, 0x1f
mov edi, 1
neg edx
mov ecx, edx
and eax, edx
not ecx
and ecx, dword [esp + 0xcc]
or ecx, eax
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x18], edi
jle 0x2a957374
mov eax, dword [esp + 0x2c]
lea edx, [ebp + 1]
sub eax, dword [esp + 0x34]
dec eax
mov dword [esp + 0x2c], eax
nop dword [eax]
and eax, edi
sub esi, edi
lea ebx, [eax - 1]
not eax
shr ebx, 0x1f
shr eax, 0x1f
and ebx, eax
dec ebx
cmp edx, esi
jge 0x2a95735c
mov eax, dword [esp + 0x10]
mov ch, bl
add eax, edx
not ch
sub esi, edx
mov dl, byte [eax + edi]
lea eax, [eax + 1]
mov cl, byte [eax - 1]
and dl, bl
and cl, ch
or dl, cl
mov byte [eax - 1], dl
sub esi, 1
jne 0x2a957342
lea edx, [ebp + 1]
mov esi, dword [esp + 0x14]
add edi, edi
mov eax, dword [esp + 0x2c]
cmp edi, dword [esp + 0x18]
jl 0x2a957320
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
xor esi, esi
test ecx, ecx
jle 0x2a9573ca
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x34]
shr eax, 0x1f
neg edi
add ebp, dword [esp + 0x10]
mov dword [esp + 0x18], eax
nop
mov edx, edi
mov ecx, esi
shr edx, 0x1f
inc edi
xor dl, al
shr ecx, 0x1f
mov al, cl
xor al, byte [esp + 0x18]
or dl, al
mov al, byte [esi + ebp + 1]
xor dl, cl
mov ecx, dword [esp + 0x3c]
neg dl
and dl, bl
and al, dl
not dl
and dl, byte [ecx + esi]
or al, dl
mov byte [ecx + esi], al
inc esi
mov eax, dword [esp + 0x18]
cmp esi, dword [esp + 0x1c]
jl 0x2a957390
push 0x107
push str.crypto_rsa_rsa_oaep.c
push 0x79
push 0x99
push 4
call fcn.2a8cf650
mov eax, ebx
and eax, 1
push eax
call fcn.2a8cf830
add esp, 0x18
mov ebp, dword [esp + 0x14]
lea eax, [esp + 0x40]
push 0x40
push eax
call fcn.2a801320
push 0x10b
push str.crypto_rsa_rsa_oaep.c
push ebp
push dword [esp + 0x24]
call fcn.2a8cbde0
push 0x10c
push str.crypto_rsa_rsa_oaep.c
push dword [esp + 0x50]
push dword [esp + 0x44]
call fcn.2a8cbde0
mov eax, ebx
add esp, 0x28
and eax, dword [esp + 0x34]
not ebx
or eax, ebx
jmp 0x2a957458
push 0x98
push str.crypto_rsa_rsa_oaep.c
push 0x79
push 0x99
push 4
call fcn.2a8cf650
add esp, 0x14
or eax, 0xffffffff
mov ecx, dword [esp + 0xc0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.2a84b0a0
add esp, 0xb4
ret