Function at 0x4726e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x20
call fcn.005e28b0
cmp dword [ebp + 0xc], 0
push esi
push edi
mov esi, ecx
mov edi, edx
mov dword [ebp - 0xc], 0
jle 0x472aa1
test esi, esi
jle 0x472aa1
push ebx
mov ebx, dword [ebp + 0x10]
cmp esi, ebx
jg 0x472a93
cmp ebx, 0xb
jl 0x472a93
push 0x4e
push str.....crypto_rsa_rsa_ssl.c
push ebx
call fcn.00413cb0
add esp, 0xc
test eax, eax
jne 0x472754
push 0x50
push str.....crypto_rsa_rsa_ssl.c
push 0x41
push 0x72
push 4
call fcn.004058f0
add esp, 0x14
pop ebx
pop edi
or eax, 0xffffffff
pop esi
mov esp, ebp
pop ebp
ret
add eax, ebx
add edi, esi
mov dword [ebp - 4], eax
test ebx, ebx
jle 0x472786
nop
mov edx, esi
not edx
shr edx, 0x1f
lea ecx, [esi - 1]
shr ecx, 0x1f
and ecx, edx
dec ecx
mov edx, ecx
and edx, 1
sub edi, edx
sub esi, edx
mov dl, byte [edi]
dec eax
and dl, cl
dec ebx
mov byte [eax], dl
jne 0x472760
mov dword [ebp - 4], eax
movzx ecx, byte [eax + 1]
movzx edx, byte [eax]
mov edi, 2
xor ecx, edi
lea esi, [ecx - 1]
not ecx
shr ecx, 0x1f
shr esi, 0x1f
and esi, ecx
lea ecx, [edx - 1]
not edx
shr ecx, 0x1f
shr edx, 0x1f
and ecx, edx
neg ecx
neg esi
and esi, ecx
mov dword [ebp - 0x10], esi
mov ecx, esi
not ecx
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x10]
mov edx, dword [ebp - 8]
and edx, 0x6b
xor ebx, ebx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x10], edx
mov dword [ebp - 8], ebx
cmp dword [ebp + 0x10], edi
jle 0x472848
or ecx, 0xffffffff
jmp 0x4727e3
mov eax, dword [ebp - 4]
movzx edx, byte [edi + eax]
lea eax, [edx - 1]
shr eax, 0x1f
not edx
shr edx, 0x1f
and eax, edx
neg eax
and ecx, eax
mov dword [ebp - 0x14], ecx
not ecx
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
and edx, dword [ebp - 0xc]
and ecx, edi
or ecx, edx
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 8]
or ecx, eax
mov eax, dword [ebp - 4]
movzx eax, byte [edi + eax]
xor eax, 3
lea edx, [eax - 1]
not eax
shr edx, 0x1f
shr eax, 0x1f
and edx, eax
mov dword [ebp - 8], ecx
not ecx
neg edx
or edx, dword [ebp - 8]
mov eax, ecx
and eax, 1
add ebx, eax
inc edi
and ebx, edx
cmp edi, dword [ebp + 0x10]
jl 0x4727e0
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0xc]
lea eax, [edx - 0xa]
or eax, edx
xor eax, edx
shr eax, 0x1f
dec eax
and esi, eax
mov eax, esi
or eax, ecx
mov dword [ebp - 0x1c], eax
not eax
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
and ecx, dword [ebp - 0x10]
and eax, 0x71
or ecx, eax
lea eax, [ebx - 8]
or eax, ebx
xor eax, ebx
shr eax, 0x1f
dec eax
mov edi, esi
and esi, eax
not edi
mov eax, esi
or eax, edi
mov dword [ebp - 0x1c], eax
mov edi, dword [ebp + 0x10]
not eax
mov dword [ebp - 0x18], eax
mov ebx, dword [ebp - 0x1c]
and ebx, ecx
mov ecx, dword [ebp - 0x18]
sub edi, edx
and ecx, 0x73
or ebx, ecx
mov ecx, dword [ebp + 0xc]
mov eax, esi
not eax
mov dword [ebp - 0x1c], eax
dec edi
mov edx, ecx
sub edx, edi
xor edx, edi
mov eax, edi
xor eax, ecx
or edx, eax
xor edx, ecx
shr edx, 0x1f
dec edx
and esi, edx
mov eax, esi
or eax, dword [ebp - 0x1c]
mov dword [ebp + 0xc], eax
not eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x1c]
and eax, ebx
and edx, 0x6d
or eax, edx
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x10], eax
add edx, 0xfffffff5
mov eax, edx
sub eax, ecx
xor eax, ecx
mov ebx, edx
xor ebx, ecx
or eax, ebx
mov ebx, dword [ebp + 0x10]
xor eax, edx
shr eax, 0x1f
neg eax
mov dword [ebp + 0xc], eax
not eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0xc]
add ebx, 0xfffffff5
and eax, ebx
mov edx, dword [ebp - 0x1c]
and edx, ecx
or eax, edx
mov edx, 1
mov dword [ebp + 0xc], eax
cmp ebx, edx
jle 0x472993
mov eax, dword [ebp + 0x10]
sub eax, edi
add eax, 0xfffffff5
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp + 0x10]
and eax, edx
lea ecx, [eax - 1]
shr ecx, 0x1f
not eax
shr eax, 0x1f
and ecx, eax
sub ebx, edx
dec ecx
cmp ebx, 0xb
jle 0x472984
movzx ecx, cl
mov eax, ecx
not eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 4]
add eax, 0xb
add ebx, 0xfffffff5
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0xc], ebx
jmp 0x472963
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x20], ecx
mov ebx, dword [ebp - 8]
mov cl, byte [eax + edx]
and cl, bl
mov ebx, dword [ebp - 0x20]
and bl, byte [eax]
inc eax
or bl, cl
dec dword [ebp - 0xc]
mov byte [eax - 1], bl
jne 0x472960
mov eax, dword [ebp + 0x10]
add edx, edx
add eax, 0xfffffff5
cmp edx, eax
jl 0x472927
mov eax, dword [ebp + 0xc]
xor ecx, ecx
test eax, eax
jle 0x4729e4
mov eax, edi
neg eax
mov dword [ebp - 0xc], eax
xor eax, edi
mov edx, ecx
xor edx, edi
or eax, edx
xor eax, ecx
shr eax, 0x1f
neg eax
and eax, esi
movzx eax, al
mov dword [ebp - 0x20], eax
not eax
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 4]
mov al, byte [eax + ecx + 0xb]
mov ebx, dword [ebp - 0x1c]
and al, dl
mov edx, dword [ebp + 8]
and bl, byte [ecx + edx]
inc ecx
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 0x4729a0
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x4729f8
mov ecx, dword [ebp - 4]
push eax
push ecx
call fcn.00586ce0
add esp, 8
mov eax, dword [fcn.00413ef0]
test eax, eax
je 0x472a1d
cmp eax, fcn.00413ef0
je 0x472a1d
mov edx, dword [ebp - 4]
push 0xa5
push str.....crypto_rsa_rsa_ssl.c
push edx
call eax
add esp, 0xc
jmp 0x472a29
mov eax, dword [ebp - 4]
push eax
call fcn.005dc555
add esp, 4
mov ecx, dword [ebp - 0x10]
push 0xa6
push str.....crypto_rsa_rsa_ssl.c
push ecx
push 0x72
push 4
call fcn.004058f0
mov ebx, esi
add esp, 0x14
and ebx, 1
call fcn.00406ca0
test eax, eax
je 0x472a7a
mov edx, dword [eax + 0x180]
lea ecx, [ebx - 1]
shr ecx, 0x1f
not ebx
shr ebx, 0x1f
and ecx, ebx
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], esi
not esi
mov dword [ebp - 0x20], esi
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x20]
pop ebx
and eax, edi
pop edi
or eax, edx
pop esi
mov esp, ebp
pop ebp
ret
push 0x4a
push str.....crypto_rsa_rsa_ssl.c
push 0x6f
jmp 0x47273e
pop edi
or eax, 0xffffffff
pop esi
mov esp, ebp
pop ebp
ret