Function at 0x56891c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x6c
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
mov dword [esp], eax
call fcn.00502a80
mov edi, eax
test eax, eax
js 0x568ac0
cmp esi, 0xffffffff
je 0x568c18
cmp esi, 0xfffffffe
je 0x568954
jl 0x568ba8
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.00508d04
dec eax
and eax, 7
mov dword [ebp - 0x3c], eax
mov dword [esp], ebx
call fcn.004ebde0
mov dword [ebp - 0x44], eax
mov edx, dword [ebp - 0x3c]
test edx, edx
jne 0x568986
mov edx, dword [ebp + 0xc]
mov byte [edx], 0
inc edx
mov dword [ebp + 0xc], edx
dec eax
mov dword [ebp - 0x44], eax
cmp esi, 0xfffffffe
je 0x568b20
lea eax, [edi + esi + 1]
cmp dword [ebp - 0x44], eax
jle 0x568be0
test esi, esi
jle 0x568b2d
mov dword [esp + 8], 0xda
mov dword [esp + 4], str.crypto_rsa_rsa_pss.c
mov dword [esp], esi
call fcn.004f28b0
mov ebx, eax
test eax, eax
je 0x568c28
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004f8018
test eax, eax
jle 0x568c20
mov eax, edi
not eax
add eax, dword [ebp - 0x44]
mov dword [ebp - 0x48], eax
mov edx, dword [ebp + 0xc]
add edx, eax
mov dword [ebp - 0x4c], edx
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x40], ecx
mov dword [esp], ecx
call fcn.004fc860
mov dword [esp + 8], 0
mov eax, dword [ebp + 0x14]
mov dword [esp + 4], eax
mov edx, dword [ebp - 0x40]
mov dword [esp], edx
call fcn.004fc8b0
mov dword [esp + 8], 8
mov dword [esp + 4], 0x6a3079
mov ecx, dword [ebp - 0x40]
mov dword [esp], ecx
call fcn.004fcb4c
mov dword [esp + 8], edi
mov eax, dword [ebp + 0x10]
mov dword [esp + 4], eax
mov edx, dword [ebp - 0x40]
mov dword [esp], edx
call fcn.004fcb4c
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0x40]
mov dword [esp], eax
call fcn.004fcb4c
mov dword [esp + 8], 0
mov edx, dword [ebp - 0x4c]
mov dword [esp + 4], edx
mov ecx, dword [ebp - 0x40]
mov dword [esp], ecx
call fcn.004fcf60
mov eax, dword [ebp - 0x40]
mov dword [esp], eax
call fcn.004fcbe8
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], edi
mov ecx, dword [ebp - 0x4c]
mov dword [esp + 8], ecx
mov eax, dword [ebp - 0x48]
mov dword [esp + 4], eax
mov edx, dword [ebp + 0xc]
mov dword [esp], edx
call fcn.005580c0
test eax, eax
je 0x568acc
xor esi, esi
test ebx, ebx
je 0x568ac2
mov dword [esp], ebx
call fcn.004f2b90
mov eax, esi
add esp, 0x6c
pop ebx
pop esi
pop edi
leave
ret
xor esi, esi
mov eax, esi
add esp, 0x6c
pop ebx
pop esi
pop edi
leave
ret
mov eax, dword [ebp - 0x44]
sub eax, esi
sub eax, edi
mov ecx, dword [ebp + 0xc]
lea edx, [ecx + eax - 2]
xor byte [edx], 1
test esi, esi
jle 0x568af0
xor eax, eax
nop
mov cl, byte [ebx + eax]
xor byte [edx + eax + 1], cl
inc eax
cmp eax, esi
jne 0x568ae4
mov esi, dword [ebp - 0x3c]
test esi, esi
je 0x568b0b
mov ecx, 8
sub ecx, dword [ebp - 0x3c]
mov eax, 0xff
sar eax, cl
mov edx, dword [ebp + 0xc]
and byte [edx], al
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x44]
mov byte [eax + ecx - 1], 0xbc
mov esi, 1
jmp 0x568aa7
sub esi, edi
add esi, dword [ebp - 0x44]
test esi, esi
jg 0x5689a4
mov eax, edi
not eax
add eax, dword [ebp - 0x44]
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp + 0xc]
add ecx, eax
mov dword [ebp - 0x4c], ecx
lea eax, [ebp - 0x30]
mov dword [ebp - 0x40], eax
mov dword [esp], eax
call fcn.004fc860
mov dword [esp + 8], 0
mov edx, dword [ebp + 0x14]
mov dword [esp + 4], edx
mov ecx, dword [ebp - 0x40]
mov dword [esp], ecx
call fcn.004fc8b0
mov dword [esp + 8], 8
mov dword [esp + 4], 0x6a3079
mov eax, dword [ebp - 0x40]
mov dword [esp], eax
call fcn.004fcb4c
mov dword [esp + 8], edi
mov edx, dword [ebp + 0x10]
mov dword [esp + 4], edx
mov ecx, dword [ebp - 0x40]
mov dword [esp], ecx
call fcn.004fcb4c
test esi, esi
jne 0x568c5b
xor ebx, ebx
jmp 0x568a58
mov dword [esp + 0x10], 0xc3
mov dword [esp + 0xc], str.crypto_rsa_rsa_pss.c
mov dword [esp + 8], 0x88
mov dword [esp + 4], 0x7d
mov dword [esp], 4
call fcn.004f2144
xor esi, esi
mov eax, esi
add esp, 0x6c
pop ebx
pop esi
pop edi
leave
ret
mov dword [esp + 0x10], 0xd5
mov dword [esp + 0xc], str.crypto_rsa_rsa_pss.c
mov dword [esp + 8], 0x6e
mov dword [esp + 4], 0x7d
mov dword [esp], 4
call fcn.004f2144
xor esi, esi
mov eax, esi
add esp, 0x6c
pop ebx
pop esi
pop edi
leave
ret
mov esi, eax
jmp 0x568954
xor esi, esi
jmp 0x568aab
mov dword [esp + 0x10], 0xde
mov dword [esp + 0xc], str.crypto_rsa_rsa_pss.c
mov dword [esp + 8], 0x41
mov dword [esp + 4], 0x7d
mov dword [esp], 4
call fcn.004f2144
xor esi, esi
jmp 0x568ac2
xor ebx, ebx
jmp 0x568a45