Function at 0x49cfb0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, edx
push esi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0xc], 0
test eax, eax
js 0x49d2c2
mov esi, dword [ebp + 0xc]
test esi, esi
js 0x49d2c2
push ebx
mov ebx, dword [ebp + 0x10]
cmp esi, ebx
jg 0x49d29a
cmp ebx, 0xb
jl 0x49d29a
push edi
push 0xe3
mov edx, str.crypto_rsa_rsa_pk1.c
mov ecx, ebx
call fcn.0042e6b0
mov edi, eax
add esp, 4
test edi, edi
jne 0x49d02d
push 0xe5
push str.crypto_rsa_rsa_pk1.c
push 0x41
lea edx, [eax + 0x71]
lea ecx, [eax + 4]
call fcn.004144f0
add esp, 0xc
or eax, 0xffffffff
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 8]
add edi, ebx
add edx, esi
mov dword [ebp - 0x10], edi
test ebx, ebx
jle 0x49d069
jmp 0x49d040
mov eax, esi
not eax
shr eax, 0x1f
lea ecx, [esi - 1]
shr ecx, 0x1f
and ecx, eax
dec ecx
mov eax, ecx
and eax, 1
sub edx, eax
sub esi, eax
mov al, byte [edx]
dec edi
and al, cl
mov byte [edi], al
dec ebx
jne 0x49d040
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x10], edi
movzx eax, byte [edi + 1]
movzx ecx, byte [edi]
xor eax, 2
mov esi, 2
lea edx, [eax - 1]
not eax
shr eax, 0x1f
shr edx, 0x1f
and edx, eax
lea eax, [ecx - 1]
not ecx
shr eax, 0x1f
shr ecx, 0x1f
and eax, ecx
neg edx
neg eax
and edx, eax
xor ecx, ecx
mov dword [ebp - 4], edx
mov dword [ebp - 8], ecx
cmp ebx, esi
jle 0x49d0db
movzx eax, byte [esi + edi]
not ecx
lea edx, [eax - 1]
not eax
shr eax, 0x1f
shr edx, 0x1f
and edx, eax
neg edx
and ecx, edx
mov eax, ecx
not eax
and eax, dword [ebp - 0xc]
and ecx, esi
or eax, ecx
mov ecx, dword [ebp - 8]
or ecx, edx
inc esi
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], ecx
cmp esi, ebx
jl 0x49d0a4
mov edx, dword [ebp - 4]
jmp 0x49d0dd
xor eax, eax
mov esi, dword [ebp - 0x14]
mov ecx, ebx
sub ecx, eax
dec ecx
mov dword [ebp - 8], ecx
mov eax, dword [ebp - 8]
mov ecx, esi
sub ecx, eax
xor ecx, eax
xor eax, esi
or ecx, eax
xor ecx, esi
mov esi, dword [ebp - 0xc]
shr ecx, 0x1f
lea eax, [esi - 0xa]
or eax, esi
xor eax, esi
mov esi, dword [ebp - 0x14]
dec ecx
shr eax, 0x1f
dec eax
and ecx, eax
and edx, ecx
mov dword [ebp - 4], edx
lea ecx, [ebx - 0xb]
mov edx, ecx
sub edx, esi
xor edx, esi
mov eax, ecx
xor eax, esi
or edx, eax
xor edx, ecx
shr edx, 0x1f
neg edx
mov ecx, edx
lea eax, [ebx - 0xb]
not ecx
and ecx, esi
and edx, eax
or ecx, edx
mov esi, 1
mov dword [ebp - 0x14], ecx
cmp eax, esi
jle 0x49d19c
mov eax, ebx
sub eax, dword [ebp - 8]
add eax, 0xfffffff5
mov dword [ebp - 0xc], eax
lea ecx, [ecx]
and eax, esi
mov edx, ebx
lea ecx, [eax - 1]
shr ecx, 0x1f
not eax
shr eax, 0x1f
and ecx, eax
sub edx, esi
dec ecx
cmp edx, 0xb
jle 0x49d18d
lea eax, [edi + 0xb]
movzx ebx, cl
lea edi, [edx - 0xb]
mov dl, byte [eax + esi]
mov cl, bl
not cl
and cl, byte [eax]
and dl, bl
or dl, cl
mov byte [eax], dl
lea eax, [eax + 1]
dec edi
jne 0x49d172
mov edi, dword [ebp - 0x10]
mov ebx, dword [ebp + 0x10]
lea eax, [ebx - 0xb]
add esi, esi
cmp esi, eax
mov eax, dword [ebp - 0xc]
jl 0x49d150
mov ecx, dword [ebp - 0x14]
xor esi, esi
test ecx, ecx
jle 0x49d201
mov eax, dword [ebp - 8]
mov ebx, dword [ebp - 8]
shr eax, 0x1f
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 4]
movzx eax, al
mov dword [ebp - 0xc], eax
lea eax, [edi + 0xb]
mov edi, dword [ebp - 0xc]
neg ebx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x18]
mov edx, ebx
shr edx, 0x1f
xor dl, al
mov ecx, esi
shr ecx, 0x1f
xor al, cl
or dl, al
mov eax, dword [ebp - 0x1c]
xor dl, cl
mov al, byte [eax + esi]
neg dl
movzx ecx, dl
mov edx, dword [ebp - 0x20]
and ecx, edi
and al, cl
not cl
and cl, byte [esi + edx]
inc esi
or al, cl
mov byte [esi + edx - 1], al
inc ebx
cmp esi, dword [ebp - 0x14]
jl 0x49d1c2
mov edi, dword [ebp - 0x10]
mov ebx, dword [ebp + 0x10]
mov eax, dword [fcn.004f2670]
push ebx
push 0
push edi
call eax
mov eax, dword [0x59fb4c]
add esp, 0xc
test eax, eax
je 0x49d220
push 0
push edi
call eax
add esp, 8
push edi
call dword [0x594128]
mov eax, dword [0x59fb4c]
add esp, 4
test eax, eax
je 0x49d23c
push 1
push 0
call eax
add esp, 8
push 0x12d
mov edx, 0x71
push str.crypto_rsa_rsa_pk1.c
push 0x9f
lea ecx, [edx - 0x6d]
call fcn.004144f0
add esp, 0xc
call fcn.00414f30
mov esi, eax
test esi, esi
je 0x49d287
mov edx, dword [ebp - 4]
mov ecx, dword [esi + 0x188]
and edx, 1
lea eax, [edx - 1]
shr eax, 0x1f
not edx
shr edx, 0x1f
and eax, edx
dec eax
and eax, 2
or dword [esi + ecx*4 + 8], eax
mov ecx, dword [ebp - 4]
mov eax, ecx
and eax, dword [ebp - 8]
pop edi
not ecx
pop ebx
or eax, ecx
pop esi
mov esp, ebp
pop ebp
ret
push 0xdf
mov edx, 0x71
push str.crypto_rsa_rsa_pk1.c
push 0x9f
lea ecx, [edx - 0x6d]
call fcn.004144f0
add esp, 0xc
or eax, 0xffffffff
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
or eax, 0xffffffff
pop esi
mov esp, ebp
pop ebp
ret