Function at 0x49f480
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1c
call fcn.0043b180
cmp dword [esp + 0x24], 0
push esi
mov dword [esp + 8], 0
jle 0x49f861
mov esi, dword [esp + 0x30]
test esi, esi
jle 0x49f861
push ebx
mov ebx, dword [esp + 0x38]
cmp esi, ebx
jg 0x49f843
cmp ebx, 0xb
jl 0x49f843
push ebp
push 0x7f
push str..crypto_rsa_rsa_ssl.c
push ebx
call fcn.004082b0
mov ebp, eax
add esp, 0xc
test ebp, ebp
jne 0x49f4f9
push 0x81
push str..crypto_rsa_rsa_ssl.c
push 0x41
push 0x72
push 4
call fcn.00406850
add esp, 0x14
pop ebp
pop ebx
or eax, 0xffffffff
pop esi
add esp, 0x1c
ret
mov edx, dword [esp + 0x34]
add edx, esi
add ebp, ebx
push edi
test ebx, ebx
jle 0x49f52c
mov edi, 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 ebp
and cl, al
dec edi
mov byte [ebp], cl
jne 0x49f508
movzx eax, byte [ebp + 1]
movzx ecx, byte [ebp]
mov esi, 2
xor eax, esi
lea ebx, [eax - 1]
lea edx, [ecx - 1]
not eax
shr eax, 0x1f
not ecx
shr ebx, 0x1f
and ebx, eax
shr ecx, 0x1f
shr edx, 0x1f
and edx, ecx
neg ebx
neg edx
and ebx, edx
mov dword [esp + 0x18], ebx
mov ecx, ebx
not ecx
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
and eax, 0x6b
xor edi, edi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], edi
cmp dword [esp + 0x40], esi
jle 0x49f5fd
or ecx, 0xffffffff
lea esp, [esp]
movzx edx, byte [esi + ebp]
lea eax, [edx - 1]
not edx
shr eax, 0x1f
shr edx, 0x1f
and eax, edx
neg eax
and ecx, eax
mov dword [esp + 0x1c], ecx
not ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
and edx, dword [esp + 0x14]
and ecx, esi
or ecx, edx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
or ecx, eax
movzx eax, byte [esi + ebp]
xor eax, 3
lea edx, [eax - 1]
not eax
shr edx, 0x1f
shr eax, 0x1f
and edx, eax
mov dword [esp + 0x10], ecx
not ecx
neg edx
or edx, dword [esp + 0x10]
mov eax, ecx
and eax, 1
add edi, eax
inc esi
and edi, edx
cmp esi, dword [esp + 0x40]
jl 0x49f590
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
lea eax, [edx - 0xa]
or eax, edx
xor eax, edx
shr eax, 0x1f
dec eax
and ebx, eax
mov eax, ebx
or eax, ecx
mov dword [esp + 0x24], eax
not eax
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
and ecx, dword [esp + 0x18]
and eax, 0x71
or ecx, eax
lea eax, [edi - 8]
or eax, edi
xor eax, edi
shr eax, 0x1f
dec eax
mov edi, dword [esp + 0x40]
mov esi, ebx
and ebx, eax
not esi
mov eax, ebx
or eax, esi
mov dword [esp + 0x24], eax
not eax
mov dword [esp + 0x20], eax
mov esi, dword [esp + 0x24]
and esi, ecx
mov ecx, dword [esp + 0x20]
sub edi, edx
and ecx, 0x73
or esi, ecx
mov ecx, dword [esp + 0x34]
mov eax, ebx
not eax
mov dword [esp + 0x24], 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 ebx, edx
mov eax, ebx
or eax, dword [esp + 0x24]
mov dword [esp + 0x34], eax
not eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x24]
and eax, esi
mov esi, dword [esp + 0x40]
and edx, 0x6d
or eax, edx
mov dword [esp + 0x18], eax
add esi, 0xfffffff5
mov eax, esi
sub eax, ecx
xor eax, ecx
mov edx, esi
xor edx, ecx
or eax, edx
xor eax, esi
mov esi, dword [esp + 0x40]
shr eax, 0x1f
neg eax
mov dword [esp + 0x34], eax
not eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
add esi, 0xfffffff5
and eax, esi
mov edx, dword [esp + 0x24]
and edx, ecx
or eax, edx
mov edx, 1
mov dword [esp + 0x34], eax
cmp esi, edx
jle 0x49f77c
mov eax, dword [esp + 0x40]
sub eax, edi
add eax, 0xfffffff5
mov dword [esp + 0x24], eax
lea esp, [esp]
mov eax, dword [esp + 0x24]
and eax, edx
lea ecx, [eax - 1]
not eax
shr eax, 0x1f
shr ecx, 0x1f
and ecx, eax
mov eax, dword [esp + 0x40]
sub eax, edx
dec ecx
cmp eax, 0xb
jle 0x49f76b
movzx ecx, cl
mov esi, ecx
not esi
add eax, 0xfffffff5
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], ecx
lea esi, [ebp + 0xb]
mov dword [esp + 0x14], eax
jmp 0x49f744
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x10]
mov al, byte [esi + edx]
and al, cl
mov ecx, dword [esp + 0x28]
and cl, byte [esi]
inc esi
or cl, al
dec dword [esp + 0x14]
mov byte [esi - 1], cl
jne 0x49f740
mov eax, dword [esp + 0x40]
add edx, edx
add eax, 0xfffffff5
cmp edx, eax
jl 0x49f700
mov eax, dword [esp + 0x34]
xor esi, esi
test eax, eax
jle 0x49f7ee
mov eax, edi
shr eax, 0x1f
mov ecx, edi
neg ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
jmp 0x49f799
mov ecx, dword [esp + 0x14]
shr ecx, 0x1f
xor cl, byte [esp + 0x10]
mov eax, esi
shr eax, 0x1f
mov dword [esp + 0x28], eax
xor al, byte [esp + 0x10]
inc dword [esp + 0x14]
or cl, al
xor cl, byte [esp + 0x28]
inc esi
neg cl
movzx eax, cl
movzx ecx, bl
and eax, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x28], eax
not eax
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x28]
mov al, byte [esi + ebp + 0xa]
and al, dl
mov edx, dword [esp + 0x24]
and dl, byte [esi + ecx - 1]
or dl, al
mov byte [esi + ecx - 1], dl
cmp esi, dword [esp + 0x34]
jl 0x49f795
mov eax, dword [esp + 0x40]
push eax
push ebp
call fcn.0040acf0
push ebp
call fcn.004084b0
mov ecx, dword [esp + 0x24]
push 0xd8
push str..crypto_rsa_rsa_ssl.c
push ecx
push 0x72
push 4
call fcn.00406850
mov edx, ebx
and edx, 1
push edx
call fcn.004065b0
mov dword [esp + 0x58], ebx
not ebx
add esp, 0x24
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
and eax, edi
pop edi
pop ebp
pop ebx
or eax, ecx
pop esi
add esp, 0x1c
ret
push 0x7b
push str..crypto_rsa_rsa_ssl.c
push 0x6f
push 0x72
push 4
call fcn.00406850
add esp, 0x14
pop ebx
or eax, 0xffffffff
pop esi
add esp, 0x1c
ret
or eax, 0xffffffff
pop esi
add esp, 0x1c
ret