Function at 0x472e60
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x20
call fcn.005e28b0
cmp dword [ebp + 0xc], 0
push ebx
mov ebx, dword [ebp + 0x14]
push esi
mov esi, ecx
mov dword [ebp - 4], 0
jle 0x47318a
test esi, esi
jle 0x47318a
cmp esi, ebx
jg 0x47316f
cmp ebx, 0xb
jl 0x47316f
push edi
push 0xb2
push str.....crypto_rsa_rsa_pk1.c
push ebx
call fcn.00413cb0
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x472eda
push 0xb4
push str.....crypto_rsa_rsa_pk1.c
push 0x41
push 0x71
push 4
call fcn.004058f0
add esp, 0x14
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x10]
add edx, esi
add edi, ebx
test ebx, ebx
jle 0x472f0d
mov dword [ebp - 0xc], ebx
mov ecx, esi
not ecx
shr ecx, 0x1f
lea eax, [esi - 1]
shr eax, 0x1f
and eax, ecx
dec eax
mov ecx, eax
and ecx, 1
sub edx, ecx
sub esi, ecx
mov cl, byte [edx]
dec edi
and cl, al
dec dword [ebp - 0xc]
mov byte [edi], cl
jne 0x472ee8
movzx eax, byte [edi + 1]
movzx edx, byte [edi]
xor eax, 2
lea ecx, [eax - 1]
not eax
shr eax, 0x1f
shr ecx, 0x1f
and ecx, eax
lea eax, [edx - 1]
not edx
shr eax, 0x1f
shr edx, 0x1f
and eax, edx
neg ecx
neg eax
and ecx, eax
mov edx, 2
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], 0
cmp ebx, edx
jle 0x472f8a
lea ebx, [ebx]
movzx eax, byte [edx + edi]
lea ecx, [eax - 1]
not eax
shr eax, 0x1f
shr ecx, 0x1f
and ecx, eax
mov eax, dword [ebp - 0xc]
not eax
neg ecx
or dword [ebp - 0xc], ecx
and eax, ecx
mov dword [ebp - 0x10], eax
not eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0x14]
and esi, dword [ebp - 4]
and eax, edx
or eax, esi
inc edx
mov dword [ebp - 4], eax
cmp edx, ebx
jl 0x472f50
mov eax, dword [ebp + 0xc]
mov ecx, eax
mov esi, ebx
sub esi, dword [ebp - 4]
dec esi
sub ecx, esi
xor ecx, esi
mov edx, esi
xor edx, eax
or ecx, edx
xor ecx, eax
mov eax, dword [ebp - 4]
lea edx, [eax - 0xa]
or edx, eax
xor edx, eax
shr ecx, 0x1f
shr edx, 0x1f
dec ecx
dec edx
and ecx, edx
and dword [ebp - 8], ecx
mov edx, dword [ebp + 0xc]
lea ecx, [ebx - 0xb]
mov eax, ecx
sub eax, edx
xor eax, edx
xor ecx, edx
or eax, ecx
lea ecx, [ebx - 0xb]
xor eax, ecx
shr eax, 0x1f
neg eax
mov dword [ebp - 0x14], eax
not eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
and edx, dword [ebp + 0xc]
lea ecx, [ebx - 0xb]
and eax, ecx
or eax, edx
mov dword [ebp + 0xc], eax
mov dword [ebp - 4], 1
cmp ecx, 1
jle 0x473075
mov eax, ebx
sub eax, esi
add eax, 0xfffffff5
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, dword [ebp - 4]
mov edx, ebx
sub edx, dword [ebp - 4]
lea ecx, [eax - 1]
shr ecx, 0x1f
not eax
shr eax, 0x1f
and ecx, eax
dec ecx
cmp edx, 0xb
jle 0x473067
movzx ecx, cl
mov eax, ecx
not eax
add edx, 0xfffffff5
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ecx
lea eax, [edi + 0xb]
mov dword [ebp - 0xc], edx
jmp 0x473043
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 4]
mov cl, byte [eax + ecx]
and cl, dl
mov edx, dword [ebp - 0x20]
and dl, byte [eax]
inc eax
or dl, cl
dec dword [ebp - 0xc]
mov byte [eax - 1], dl
jne 0x473040
shl dword [ebp - 4], 1
lea eax, [ebx - 0xb]
cmp dword [ebp - 4], eax
jl 0x473003
mov eax, dword [ebp + 0xc]
xor ecx, ecx
test eax, eax
jle 0x4730c8
mov eax, esi
neg eax
mov dword [ebp - 0xc], eax
xor eax, esi
mov edx, ecx
xor edx, esi
or eax, edx
xor eax, ecx
shr eax, 0x1f
neg eax
and eax, dword [ebp - 8]
inc ecx
movzx eax, al
mov dword [ebp - 0x20], eax
not eax
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x20]
mov al, byte [edi + ecx + 0xa]
mov ebx, dword [ebp - 0x1c]
and al, dl
mov edx, dword [ebp + 8]
and bl, byte [ecx + edx - 1]
or bl, al
mov eax, dword [ebp - 0xc]
mov byte [ecx + edx - 1], bl
inc eax
mov dword [ebp - 0xc], eax
cmp ecx, dword [ebp + 0xc]
jl 0x473082
mov ebx, dword [ebp + 0x14]
test ebx, ebx
je 0x4730d6
push ebx
push edi
call fcn.00586ce0
add esp, 8
mov eax, dword [fcn.00413ef0]
test eax, eax
je 0x4730f8
cmp eax, fcn.00413ef0
je 0x4730f8
push 0xfa
push str.....crypto_rsa_rsa_pk1.c
push edi
call eax
add esp, 0xc
jmp 0x473101
push edi
call fcn.005dc555
add esp, 4
push 0xfb
push str.....crypto_rsa_rsa_pk1.c
push 0x9f
push 0x71
push 4
call fcn.004058f0
mov ebx, dword [ebp - 8]
mov edi, ebx
add esp, 0x14
and edi, 1
call fcn.00406ca0
test eax, eax
je 0x473156
mov edx, dword [eax + 0x180]
lea ecx, [edi - 1]
shr ecx, 0x1f
not edi
shr edi, 0x1f
and ecx, edi
neg ecx
mov dword [ebp + 0xc], ecx
not ecx
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x20]
and ecx, 2
or dword [eax + edx*4], ecx
mov dword [ebp + 0xc], ebx
not ebx
mov dword [ebp - 0x20], ebx
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x20]
pop edi
and eax, esi
pop esi
or eax, edx
pop ebx
mov esp, ebp
pop ebp
ret
push 0xae
push str.....crypto_rsa_rsa_pk1.c
push 0x9f
push 0x71
push 4
call fcn.004058f0
add esp, 0x14
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret