Function at 0x10177b80
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0xbc
call fcn.10043ea0
mov eax, dword [0x10271304]
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 0x10177c04
call fcn.101296b0
mov dword [esp + 0x24], eax
test edi, edi
push eax
cmove edi, eax
mov dword [esp + 0x14], edi
call fcn.1013bbc0
mov edi, eax
add esp, 4
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x44], edi
test eax, eax
jle 0x10178090
test esi, esi
jle 0x10178090
cmp ebx, esi
jl 0x10178075
lea eax, [edi*2 + 2]
cmp ebx, eax
jl 0x10178075
push 0x9e
sub ebx, edi
dec ebx
push str..crypto_rsa_rsa_oaep.c
push ebx
mov dword [esp + 0x20], ebx
call fcn.10122520
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x10177c8c
push 0xa0
push str..crypto_rsa_rsa_oaep.c
push 0x41
push 0xa1
push 4
call fcn.1012ff40
add esp, 0x14
jmp 0x10178035
push 0xa4
push str..crypto_rsa_rsa_oaep.c
push dword [esp + 0x34]
call fcn.10122520
add esp, 0xc
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x10177cb1
push 0xa7
jmp 0x10177c71
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 0x10177cfe
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 0x10177cd0
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.10177630
add esp, 0x14
test eax, eax
jne 0x10178035
xor edx, edx
test edi, edi
jle 0x10177dd0
cmp edi, 0x20
jb 0x10177db4
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 0x10177d63
cmp ecx, esi
jae 0x10177db4
mov eax, edi
and eax, 0x8000001f
jns 0x10177d71
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 0x10177d80
mov ebx, dword [esp + 0x14]
cmp edx, edi
jge 0x10177dd0
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 0x10177dc0
push dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x4c]
push edi
push eax
push ebx
push esi
call fcn.10177630
add esp, 0x14
test eax, eax
jne 0x10178035
xor edx, edx
test ebx, ebx
jle 0x10177eab
cmp ebx, 0x20
jb 0x10177e82
mov ecx, dword [esp + 0x20]
lea eax, [ecx - 1]
add eax, ebx
cmp esi, eax
ja 0x10177e19
lea eax, [esi - 1]
add eax, ebx
cmp eax, ecx
jae 0x10177e82
mov eax, ebx
and eax, 0x8000001f
jns 0x10177e27
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 0x10177e50
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x18]
cmp edx, ebx
jge 0x10177eab
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 0x10177e95
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.10128fd0
add esp, 0x18
test eax, eax
je 0x10178035
push edi
lea eax, [esp + 0x8c]
push eax
push esi
call fcn.10137810
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 0x10177f55
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 0x10177f03
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 0x1017800f
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 0x10177fc5
mov ebp, dword [esp + 0x34]
push 0x108
push str..crypto_rsa_rsa_oaep.c
push 0x79
push 0xa1
push 4
call fcn.1012ff40
mov eax, ebp
and eax, 1
push eax
call fcn.10130300
add esp, 0x18
lea eax, [esp + 0x48]
push 0x40
push eax
call fcn.10001360
mov esi, dword [esp + 0x20]
push ebx
push esi
call fcn.10001360
push esi
call fcn.10122450
push dword [esp + 0x40]
mov esi, dword [esp + 0x34]
push esi
call fcn.10001360
push esi
call fcn.10122450
mov eax, ebp
add esp, 0x20
and eax, dword [esp + 0x30]
not ebp
or eax, ebp
jmp 0x10178093
push 0x99
push str..crypto_rsa_rsa_oaep.c
push 0x79
push 0xa1
push 4
call fcn.1012ff40
add esp, 0x14
or eax, 0xffffffff
mov ecx, dword [esp + 0xc8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1004338a
add esp, 0xbc
ret