Function at 0x4a7fe0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x9c
lea esi, [esp + 0x38]
mov ebx, dword [esp + 0xbc]
mov dword [esp], esi
mov ebp, dword [esp + 0xb0]
call fcn.004629a0
mov eax, dword [esp + 0xb8]
test ebx, ebx
cmove ebx, dword [esp + 0xb8]
mov dword [esp], eax
call fcn.0043ea10
test eax, eax
mov edx, eax
js 0x4a80dd
cmp dword [esp + 0xc4], 0xffffffff
je 0x4a8181
cmp dword [esp + 0xc4], 0xfffffffe
je 0x4a8045
jl 0x4a8122
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x20], edx
mov dword [esp], eax
call fcn.0041e0d0
mov dword [esp], ebp
mov ebp, 0xff
lea edi, [eax - 1]
call fcn.0041ec70
mov edx, dword [esp + 0xc0]
and edi, 7
mov ecx, edi
shl ebp, cl
movzx ecx, byte [edx]
mov edx, dword [esp + 0x20]
test ebp, ecx
jne 0x4a80f4
test edi, edi
jne 0x4a808c
add dword [esp + 0xc0], 1
sub eax, 1
mov ecx, dword [esp + 0xc4]
lea ecx, [edx + ecx + 1]
cmp eax, ecx
jle 0x4a8150
mov ecx, dword [esp + 0xc0]
cmp byte [ecx + eax - 1], 0xbc
je 0x4a8190
mov dword [esp + 0x10], 0x83
mov dword [esp + 0xc], str.external_openssl_crypto_rsa_rsa_pss.c
mov dword [esp + 8], 0x86
mov dword [esp + 4], 0x95
mov dword [esp], 4
call fcn.00429800
xor ebx, ebx
mov dword [esp], esi
call fcn.00462e20
add esp, 0x9c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x10], 0x74
mov dword [esp + 0xc], str.external_openssl_crypto_rsa_rsa_pss.c
mov dword [esp + 8], 0x85
mov dword [esp + 4], 0x95
mov dword [esp], 4
call fcn.00429800
jmp 0x4a80dd
mov dword [esp + 0x10], 0x6c
mov dword [esp + 0xc], str.external_openssl_crypto_rsa_rsa_pss.c
mov dword [esp + 8], 0x88
mov dword [esp + 4], 0x95
mov dword [esp], 4
call fcn.00429800
jmp 0x4a80dd
mov dword [esp + 0x10], 0x7e
mov dword [esp + 0xc], str.external_openssl_crypto_rsa_rsa_pss.c
mov dword [esp + 8], 0x6d
mov dword [esp + 4], 0x95
mov dword [esp], 4
call fcn.00429800
jmp 0x4a80dd
mov dword [esp + 0xc4], eax
jmp 0x4a8045
sub eax, edx
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x2c], eax
sub eax, 1
mov dword [esp + 8], 0x88
mov dword [esp + 4], str.external_openssl_crypto_rsa_rsa_pss.c
add edx, eax
mov dword [esp], eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], eax
call fcn.004273e0
mov edx, dword [esp + 0x24]
test eax, eax
mov ebp, eax
je 0x4a8444
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0xc], edx
mov dword [esp], ebp
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp + 0x24], edx
call fcn.0043fad0
test eax, eax
js 0x4a8300
xor eax, eax
test ebx, ebx
mov edx, dword [esp + 0x24]
jle 0x4a8233
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0x24], edx
lea esi, [esi]
movzx edx, byte [ebx + eax]
xor byte [ebp + eax], dl
add eax, 1
cmp eax, ecx
jne 0x4a8220
mov edx, dword [esp + 0x24]
test edi, edi
jne 0x4a82e0
movzx ebx, byte [ebp]
test bl, bl
jne 0x4a8475
mov eax, dword [esp + 0x2c]
cmp eax, 2
jle 0x4a8304
sub eax, 2
xor ecx, ecx
jmp 0x4a8268
cmp ecx, eax
je 0x4a8304
add ecx, 1
movzx ebx, byte [ebp + ecx]
test bl, bl
je 0x4a8260
lea edi, [ecx + 1]
cmp bl, 1
jne 0x4a8304
mov eax, dword [esp + 0xc4]
test eax, eax
js 0x4a8334
mov eax, dword [esp + 0x20]
sub eax, edi
cmp eax, dword [esp + 0xc4]
je 0x4a8334
mov dword [esp + 0x10], 0x9c
xor ebx, ebx
mov dword [esp + 0xc], str.external_openssl_crypto_rsa_rsa_pss.c
mov dword [esp + 8], 0x88
mov dword [esp + 4], 0x95
mov dword [esp], 4
call fcn.00429800
mov dword [esp], ebp
call fcn.004276d0
jmp 0x4a80df
mov ecx, 8
mov ebx, 0xff
sub ecx, edi
sar ebx, cl
and bl, byte [ebp]
mov byte [ebp], bl
jmp 0x4a823f
xor ebx, ebx
jmp 0x4a82d0
mov dword [esp + 0x10], 0x97
xor ebx, ebx
mov dword [esp + 0xc], str.external_openssl_crypto_rsa_rsa_pss.c
mov dword [esp + 8], 0x87
mov dword [esp + 4], 0x95
mov dword [esp], 4
call fcn.00429800
jmp 0x4a82d0
mov eax, dword [esp + 0xb8]
mov dword [esp + 8], 0
mov dword [esp], esi
mov dword [esp + 0x24], edx
mov dword [esp + 4], eax
call fcn.00462a80
test eax, eax
je 0x4a8300
mov dword [esp + 8], 8
mov dword [esp + 4], 0x4e8fee
mov dword [esp], esi
call fcn.00462d70
mov edx, dword [esp + 0x24]
test eax, eax
je 0x4a8300
mov eax, dword [esp + 0xb4]
mov dword [esp + 8], edx
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.00462d70
mov edx, dword [esp + 0x24]
test eax, eax
je 0x4a8300
cmp dword [esp + 0x20], edi
je 0x4a83c8
mov eax, dword [esp + 0x20]
mov dword [esp], esi
mov dword [esp + 0x24], edx
sub eax, edi
add edi, ebp
mov dword [esp + 8], eax
mov dword [esp + 4], edi
call fcn.00462d70
mov edx, dword [esp + 0x24]
test eax, eax
je 0x4a8300
lea ebx, [esp + 0x50]
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], esi
mov dword [esp + 0x20], edx
call fcn.00462d80
mov edx, dword [esp + 0x20]
test eax, eax
je 0x4a8300
mov eax, dword [esp + 0x28]
mov dword [esp], ebx
mov ebx, 1
mov dword [esp + 8], edx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4a82d0
mov dword [esp + 0x10], 0xac
xor bl, bl
mov dword [esp + 0xc], str.external_openssl_crypto_rsa_rsa_pss.c
mov dword [esp + 8], 0x68
mov dword [esp + 4], 0x95
mov dword [esp], 4
call fcn.00429800
jmp 0x4a82d0
mov dword [esp + 0x10], 0x8b
mov dword [esp + 0xc], str.external_openssl_crypto_rsa_rsa_pss.c
mov dword [esp + 8], 0x41
mov dword [esp + 4], 0x95
mov dword [esp], 4
call fcn.00429800
jmp 0x4a80dd
mov edi, 1
jmp 0x4a8277