Function at 0x56a060
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xac
mov esi, dword [esp + 0xc0]
mov ebx, dword [esp + 0xcc]
mov edx, dword [esp + 0xc8]
mov dword [esp], edx
call fcn.004d9e00
mov ebp, eax
test eax, eax
js 0x56a129
cmp dword [esp + 0xd0], 0xffffffff
je 0x56a1e0
cmp dword [esp + 0xd0], 0xfffffffe
je 0x56a0af
jl 0x56a170
mov eax, dword [esi + 0x10]
mov dword [esp], eax
call fcn.004bcaa0
lea edi, [eax - 1]
and edi, 7
mov dword [esp], esi
call fcn.004d4540
mov edx, 0xff
mov ecx, edi
shl edx, cl
xor ecx, ecx
mov cl, byte [ebx]
test edx, ecx
jne 0x56a140
test edi, edi
jne 0x56a0df
inc ebx
dec eax
mov ecx, dword [esp + 0xd0]
lea edx, [ebp + ecx + 1]
cmp eax, edx
jle 0x56a1a0
cmp byte [ebx + eax - 1], 0xbc
je 0x56a1f0
mov dword [esp + 0x10], 0x78
mov dword [esp + 0xc], str.rsa_pss.c
mov dword [esp + 8], 0x86
mov dword [esp + 4], 0x7e
mov dword [esp], 4
call fcn.004b2280
xor eax, eax
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x10], 0x69
mov dword [esp + 0xc], str.rsa_pss.c
mov dword [esp + 8], 0x85
mov dword [esp + 4], 0x7e
mov dword [esp], 4
call fcn.004b2280
jmp 0x56a129
mov dword [esp + 0x10], 0x61
mov dword [esp + 0xc], str.rsa_pss.c
mov dword [esp + 8], 0x88
mov dword [esp + 4], 0x7e
mov dword [esp], 4
call fcn.004b2280
jmp 0x56a129
mov dword [esp + 0x10], 0x73
mov dword [esp + 0xc], str.rsa_pss.c
mov dword [esp + 8], 0x6d
mov dword [esp + 4], 0x7e
mov dword [esp], 4
call fcn.004b2280
jmp 0x56a129
mov dword [esp + 0xd0], eax
jmp 0x56a0af
sub eax, ebp
mov dword [esp + 0x34], eax
mov edx, eax
dec edx
lea eax, [ebx + edx]
mov dword [esp + 0x38], eax
mov dword [esp + 8], 0x7d
mov dword [esp + 4], str.rsa_pss.c
mov dword [esp], edx
mov dword [esp + 0x2c], edx
call fcn.004b8170
mov esi, eax
test eax, eax
mov edx, dword [esp + 0x2c]
je 0x56a49c
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], ebp
mov eax, dword [esp + 0x38]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], esi
mov dword [esp + 0x2c], edx
call fcn.00560110
test eax, eax
mov edx, dword [esp + 0x2c]
js 0x56a3e0
test edx, edx
jle 0x56a2db
mov ecx, edx
shr ecx, 2
lea eax, [ecx*4]
mov dword [esp + 0x3c], eax
lea eax, [esi + 4]
cmp ebx, eax
setae byte [esp + 0x33]
lea eax, [ebx + 4]
cmp esi, eax
setae al
or byte [esp + 0x33], al
cmp edx, 6
seta al
and byte [esp + 0x33], al
mov eax, esi
or eax, ebx
test al, 3
sete al
test byte [esp + 0x33], al
mov eax, 0
je 0x56a2d0
cmp dword [esp + 0x3c], 0
je 0x56a2d0
mov dword [esp + 0x28], edx
mov edx, dword [ebx + eax*4]
xor dword [esi + eax*4], edx
inc eax
cmp ecx, eax
ja 0x56a2b0
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x3c]
cmp edx, eax
je 0x56a2db
mov esi, esi
lea edi, [edi]
mov cl, byte [ebx + eax]
xor byte [esi + eax], cl
inc eax
cmp edx, eax
jg 0x56a2d0
test edi, edi
jne 0x56a390
mov al, byte [esi]
test al, al
jne 0x56a500
mov ecx, dword [esp + 0x34]
sub ecx, 2
test ecx, ecx
jle 0x56a3b0
xor edi, edi
jmp 0x56a308
cmp edi, ecx
je 0x56a3b0
inc edi
mov al, byte [esi + edi]
test al, al
je 0x56a300
inc edi
dec al
jne 0x56a3b0
mov eax, dword [esp + 0xd0]
test eax, eax
js 0x56a3e4
mov eax, edx
sub eax, edi
cmp eax, dword [esp + 0xd0]
je 0x56a3e4
mov dword [esp + 0x10], 0x91
mov dword [esp + 0xc], str.rsa_pss.c
mov dword [esp + 8], 0x88
mov dword [esp + 4], 0x7e
mov dword [esp], 4
call fcn.004b2280
xor eax, eax
mov esi, esi
lea edi, [edi]
mov dword [esp], esi
mov dword [esp + 0x2c], eax
call fcn.004b8660
mov eax, dword [esp + 0x2c]
jmp 0x56a12b
mov ecx, 8
sub ecx, edi
mov eax, 0xff
sar eax, cl
and al, byte [esi]
mov byte [esi], al
jmp 0x56a2e5
mov dword [esp + 0x10], 0x8c
mov dword [esp + 0xc], str.rsa_pss.c
mov dword [esp + 8], 0x87
mov dword [esp + 4], 0x7e
mov dword [esp], 4
call fcn.004b2280
xor eax, eax
jmp 0x56a370
xor eax, eax
jmp 0x56a370
lea ebx, [esp + 0x48]
mov dword [esp], ebx
mov dword [esp + 0x2c], edx
call fcn.004d1550
mov dword [esp + 8], 0
mov eax, dword [esp + 0xc8]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.004d1650
mov dword [esp + 8], 8
mov dword [esp + 4], 0x611ef6
mov dword [esp], ebx
call fcn.004d1950
mov dword [esp + 8], ebp
mov eax, dword [esp + 0xc4]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.004d1950
mov edx, dword [esp + 0x2c]
cmp edx, edi
je 0x56a45a
sub edx, edi
mov dword [esp + 8], edx
add edi, esi
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.004d1950
mov dword [esp + 8], 0
lea edi, [esp + 0x60]
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.004d20c0
mov dword [esp], ebx
call fcn.004d1a50
mov dword [esp + 8], ebp
mov edx, dword [esp + 0x38]
mov dword [esp + 4], edx
mov dword [esp], edi
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x56a4cd
mov eax, 1
jmp 0x56a370
mov dword [esp + 0x10], pe_nt_image_headers32
mov dword [esp + 0xc], str.rsa_pss.c
mov dword [esp + 8], 0x41
mov dword [esp + 4], 0x7e
mov dword [esp], 4
call fcn.004b2280
jmp 0x56a129
mov dword [esp + 0x10], 0x9e
mov dword [esp + 0xc], str.rsa_pss.c
mov dword [esp + 8], 0x68
mov dword [esp + 4], 0x7e
mov dword [esp], 4
call fcn.004b2280
xor eax, eax
jmp 0x56a370
mov edi, 1
jmp 0x56a311