Function at 0x56ddf0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x10
call fcn.004a0d90
push ebp
push edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0xc], 0
test edi, edi
jl 0x56e06b
mov ebp, dword [esp + 0x28]
test ebp, ebp
jl 0x56e06b
push esi
mov esi, dword [esp + 0x30]
cmp ebp, esi
jg 0x56e046
cmp esi, 0xb
jl 0x56e046
push ebx
push 0xe3
push str..crypto_rsa_rsa_pk1.c
push esi
call fcn.00500440
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x56de6f
push 0xe5
push str..crypto_rsa_rsa_pk1.c
push 0x41
push 0x71
push 4
call fcn.004fb700
add esp, 0x14
pop ebx
pop esi
pop edi
or eax, 0xffffffff
pop ebp
add esp, 0x10
ret
mov edx, dword [esp + 0x2c]
add ebx, esi
add edx, ebp
mov dword [esp + 0x1c], ebx
test esi, esi
jle 0x56deae
mov dword [esp + 0x10], esi
mov ecx, ebp
not ecx
shr ecx, 0x1f
lea eax, [ebp - 1]
shr eax, 0x1f
and eax, ecx
dec eax
mov ecx, eax
and ecx, 1
sub edx, ecx
sub ebp, ecx
mov cl, byte [edx]
dec ebx
and cl, al
sub dword [esp + 0x10], 1
mov byte [ebx], cl
jne 0x56de83
mov dword [esp + 0x1c], ebx
movzx eax, byte [ebx + 1]
movzx ecx, byte [ebx]
xor eax, 2
lea ebp, [eax - 1]
lea edx, [ecx - 1]
shr ebp, 0x1f
shr edx, 0x1f
not eax
not ecx
shr eax, 0x1f
shr ecx, 0x1f
and ebp, eax
and edx, ecx
neg edx
neg ebp
and ebp, edx
mov edx, 2
cmp esi, edx
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], edx
jle 0x56df30
lea ecx, [ecx]
movzx eax, byte [edx + ebx]
mov edx, dword [esp + 0x18]
lea ecx, [eax - 1]
not eax
shr eax, 0x1f
shr ecx, 0x1f
and ecx, eax
mov eax, dword [esp + 0x10]
neg ecx
or dword [esp + 0x10], ecx
not eax
and eax, ecx
mov edi, eax
not edi
and edi, dword [esp + 0x14]
and eax, edx
inc edx
or edi, eax
cmp edx, esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edx
jl 0x56def0
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
lea edx, [ecx + 1]
mov dword [esp + 0x28], edx
mov eax, esi
sub eax, edx
mov edx, edi
sub edx, eax
xor edx, eax
xor eax, edi
or edx, eax
lea eax, [ecx - 0xa]
or eax, ecx
xor eax, ecx
shr eax, 0x1f
dec eax
xor edx, edi
shr edx, 0x1f
dec edx
and edx, eax
mov eax, esi
sub eax, edi
xor eax, edi
mov ecx, edi
xor ecx, esi
or eax, ecx
xor eax, esi
shr eax, 0x1f
neg eax
and ebp, edx
mov edx, eax
and eax, esi
not edx
and edx, edi
or edx, eax
mov ecx, ebp
not ecx
mov eax, esi
sub eax, edx
and eax, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x28]
and ecx, ebp
or eax, ecx
mov ecx, esi
sub ecx, eax
add eax, ebx
xor edi, edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ebp
test edx, edx
jle 0x56e001
lea esp, [esp]
mov ebx, dword [esp + 0x2c]
mov ecx, edi
xor ecx, dword [esp + 0x18]
inc edi
lea eax, [ecx - 1]
not ecx
shr eax, 0x1f
shr ecx, 0x1f
and eax, ecx
neg eax
mov ecx, eax
and ecx, edx
sub ebx, ecx
mov ecx, dword [esp + 0x28]
xor eax, ecx
and ecx, eax
movzx eax, cl
mov dword [esp + 0x2c], ebx
mov bl, byte [edi + ebx - 1]
and bl, al
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x24]
not al
and al, byte [edi + ecx - 1]
or bl, al
cmp edi, edx
mov byte [edi + ecx - 1], bl
jl 0x56dfb0
mov ebx, dword [esp + 0x1c]
push esi
push ebx
call fcn.005105e0
push ebx
call fcn.00500640
push 0x12d
push str..crypto_rsa_rsa_pk1.c
push 0x9f
push 0x71
push 4
call fcn.004fb700
mov edx, ebp
and edx, 1
push edx
call fcn.004fb480
add esp, 0x24
pop ebx
mov eax, ebp
and eax, dword [esp + 0x14]
pop esi
or eax, dword [esp + 0xc]
pop edi
pop ebp
add esp, 0x10
ret
push 0xdf
push str..crypto_rsa_rsa_pk1.c
push 0x9f
push 0x71
push 4
call fcn.004fb700
add esp, 0x14
pop esi
pop edi
or eax, 0xffffffff
pop ebp
add esp, 0x10
ret
pop edi
or eax, 0xffffffff
pop ebp
add esp, 0x10
ret